💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
### 什么是Spring? ``` Spring是一个分层的JavaSE/EE full-stack(一站式)轻量级开源框架 ``` ### 为什么学习Spring? 方便解耦, 简化开发 ``` 1. 通过IoC容器,可以将对象之间的依赖关系交由Spring进行控制,避免耦合 2. 用户不必再为单示例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用 ``` AOP编程的支持 ``` 提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松解决 ``` 声明式事务的支持 ``` 通过声明式方式灵活地进行事务的管理,提高开发效率和质量 ``` 方便编程测试 ``` Spring对Junit4的支持可以用非容器依赖的编程方式进行几乎所有的测试工作 ``` 方便集成各种优秀框架 ``` 1. 不排斥各种优秀的开源框架 2.可以降低各种框架的使用难度,Spring提供了对各种优秀框架的直接支持 例如: Struts2, Hibernate, Hessian,Quartz等 ``` 降低JavaEE API的使用难度 ``` 通过Spring的简单封装大大降低javaEE的使用难度 例如: JDBC,JavaMail, 远程调用等 ``` Spring源码是经典学习范例 ``` Spring的源码设计精妙、结构清晰、匠心独运,处处体现大师对java设计模式灵活运用以及对java技术的高深造诣 Spring框架源码无疑是java技术的最佳技术实践范例,如果你想在短时间内迅速提升自己的java技术水平和应用开 发水平,学习和研究Spring源码将使你收到意想不到的效果 ``` 总结: 1. 低侵入式设计,代码污染极低 2. 独立于各种应用服务器,基于Spring框架应用,可以真正实现Write Once, Run Anywhere 3. Spring的DI机制降低了业务对象替换的复杂性,提高了组件之间的耦合 4. Spring的AOP支持允许将一些通用任务如果安全、事物、日志等进行集中管理,从提供了更好的复用 5. Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层数据库的访问 6. Spring并不强制应用完全依赖于Spring,开发者可以自由选用Spring框架的部分或者全部 ### Spring版本 ``` JDK8+ for Spring Framework 5.x JDK6+ for Spring Framework 4.x JDK5+ for Spring Framework 3.x ``` ### 体系结构 ![](https://box.kancloud.cn/4d672284531d36a9d9995c101339f04d_603x467.png) ### 核心概念 ``` IoC: 控制反转,对象的创建权利由程序反转给Spring框架 AOP: 面向切面编程,不修改目标对象的源代码的情况下,增强IoC容器中bean的功能 DI: 依赖注入,Spring框架负责创建Bean对象时,动态的将依赖对象注入到Bean组件中 Spring容器: 就是IoC容器 ```