1.1原生Web开发存在哪些问题
1.2Spring解决的问题
传统Web开发存在硬编码所造成的过度程序耦合(例如:Service中作为属性Dao对象)。
部分Java EE API较为复杂,使用效率低(例如:JDBC开发步骤)。
侵入性强,移植性差(例如:DAO实现的更换,从Connection到SqlSession)。
二、Spring框架
- 耦合问题:
- 首先Spring就是一个容器
- 可以将一个Dao对象存入到容器中,往后其他Service需要用到Dao对象就不用再new一个新的
- 只需要从容器中找到那个Dao对象使用即可
- 效率问题:
- 在Spring中使用了**JdbcTemplate** 简化了JDBC开发步骤
2.1 概念
2.2 Spring家族
Spring是一个项目管理框架,同时也是一套Java EE解决方案。
Spring是众多优秀设计模式的组合(工厂、单例、代理、适配器、包装器、观察者、模板、策略)。
Spring并未替代现有框架产品,而是将众多框架进行有机整合,简化企业级开发,俗称"胶水框架"。
2.3 官网
- Spring framework : Spring一般都是指向这个,是Spring基础
- Spring Boot :因为Spring本身配置过于繁琐推出的
- Spring Data :Spring推出的数据访问方案,可以通过我们定义的名字自动帮我生成代码查找
- Spring Cloud :主流的微服务解决方案,因为阿里巴巴很久没更新,Sptring Cloud后来居上
- 官方网站:https://spring.io/
Spring架构由诸多模块组成,可分类为
- 核心技术:依赖注入,事件,资源,i18n,验证,数据绑定,类型转换,SpEL,AOP。
- 测试:模拟对象,TestContext框架,Spring MVC测试,WebTestClient。
- 数据访问:事务,DAO支持,JDBC,ORM,封送XML。
- Spring MVC和 Spring WebFlux Web框架。
- 集成:远程处理,JMS,JCA,JMX,电子邮件,任务,调度,缓存。
- 语言:Kotlin,Groovy,动态语言。



