一. 什么是Spring框架
Spring是Rod Johnson于2004年开发的,以IoC和AOP为技术基础,同时提供了表现层的MVC框架,JDBC便捷操作,以及事务管理器等诸多企业级应用核心技术,同时还支持对很多第三方框架和类库的整合,是Java EE领域中不可替代的开源框架
【官方网址】:https://spring.io/
二. Spring的发展历程
![在这里插入图片描述](https://img-blog.csdnimg.cn/b6e47718510a44c8973a7eb26b0d1739.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6a2P5bCP5pil,size_12,color_FFFFFF,t_70,g_se,x_16#pic_center)
- 1997年,IBM公司提出了EJB的思想
- 1998年,Sun公司制定了EJB1.0开发规范
- 2001年,EJB2.0发布
- 2002年,Rod Johnson出版图书
Expert One-to-One J2EE Design and Development - 2003年,EJB2.1发布
- 2004年,Rod Johnson提出新的设计思想,再次出版图书
Expert One-to-One J2EE Development without EJB
并以此书中阐述的思想,设计和开发出Spring1.0 - 2006年,EJB3.0发布,Spring2.5发布
- 2011年,Spring3.0发布
- 2013年,Spring4.0发布
- 2017年9月,Spring 5.0发布
三. 使用Spring的好处
- 程序中无需关心组件对象的创建和管理过程,开箱即用(IoC容器相当于对象的大工厂)
- 支持AOP编程,实现核心业务和非核心业务之间的解耦(动态代理技术将非核心业务定义成切面类,类似于Filter,Interceptor)
- 支持声明式事务管理(在业务层定义事务边界,使用AOP动态织入事务管理代码)
- 集成各种第三方的框架
- 降低了Java EE API的使用难度,简化开发,提高编码效率
- Spring是最好的源码学习范例,设计巧妙,结构清晰,处处体现设计模式的灵活运用
四. Spring的生态圈
![在这里插入图片描述](https://img-blog.csdnimg.cn/385bc6a63eea49a3b44a6c6387154ad0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6a2P5bCP5pil,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
五. Spring Framework的体系结构和核心功能
![在这里插入图片描述](https://img-blog.csdnimg.cn/fe5cc27e3563438e9d5e9f72d87a75dc.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6a2P5bCP5pil,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
- IoC功能
名称 | 功能 |
---|
spring-core.jar | 必备的核心工具组件,其他jar包都要依赖此包,依赖spring-jcl日志包 |
spring-beans.jar | 实现IoC和DI的核心功能,包括访问配置文件、创建和管理bean |
spring-context.jar | 为spring-core提供了大量扩展,包括注解配置Bean,数据类型转换,数据验证,任务调度,国际化,事件传播等辅助功能 |
spring-expression.jar | 提供对 SpEL表达式的支持(Spring Expression Language) |
- AOP功能
名称 | 功能 |
---|
spring-aop.jar | 实现AOP的核心功能,提供基于AOP的注解 |
spring-aspects.jar | 提供Aspectj语法支持,配置切面表达式 |
- 整合业务层
名称 | 功能 |
---|
spring-tx.jar | 整合业务层,提供事务管理器,实现声明式事务管理功能 |
- 整合持久化层
名称 | 功能 |
---|
spring-jdbc.jar | 整合JDBC,提供JDBCTemplate模板简化JDBC操作 |
spring-orm.jar | 整合第三方的ORM持久层框架(如MyBatis,Hibernate) |
- 整合Web表现层
包括自动载入Web Application Context 特性的类、Struts 与JSF 集成类、文件上传的支持类、Filter 类和大量工具辅助类。
名称 | 功能 |
---|
spring-web.jar | Web项目中所需的核心类,整合第三方的Web表现层框架(如Struts),并提供POST请求的字符编码过滤器 |
spring-webmvc.jar | Spring内置的基于MVC结构的Web表现层框架,包括框架的前端控制器,控制器和视图支持 |
- 整合JUnit单元测试
名称 | 功能 |
---|
spring-test.jar | 整合第三方的单元测试组件 |
【参考网址:https://www.cnblogs.com/gangzi2013/p/5583650.html】
Spring系列学习笔记会每日更新,欢迎大家关注订阅点赞!!!