一、前言
从这篇博客开始,小编就向大家分享spring相关的知识,可以说,做过java开发的,没有不接触spring的。spring使用也是非常方便的。在网上也有很多关于spring的资料,从2003年起,spring创建到现在spring 5 ,越来越完善,越来越好用。从xml配置到注解配置,代码越来越简单。
下面小编就向大家分享spring的相关系列。
二、spring的前世今生
首先,spring是一个开源框架。2003年起由Rod Johnson阐述的思想演变过来的。spring的核心就是控制反转(IOC)和面向切面编程(AOP)。可以说spring是一个轻量级的、一站式的开源框架。
spring的发展过程:
- 第一个阶段:xml配置阶段
在是spring 1.x时代,使用spring开发,基本都是在xml文件中配置bean,随着项目越来越大,xml 总写入很多bean的配置。
- 第二个阶段:注解配置
在spring 2.x 时代,随着JDK1.5 对注解的支持,spring提供了声明Bean的注解(@Component,@Service),从而大大减少了xml文件中配置bean的配置量。
- 第三个阶段:Java配置
从spring3.x到现在,spring提供了Java配置能力,Java配置可以让我们使用注解配置任何东西,可以做到零配置文件。最好的例子就是spring boot。
三、spring模块
spring是使用简单的POJO(Plain Old Java Object),无任何限制的 普通java对象,来进行企业开发的。每一个被spring管理的对象都称为bean,spring提供一个Ioc容器来初始化对象,解决对象间的依赖管理和对象的使用。
上图就是spring的各个模块。
- 核心容器(Core Container)
Spring-beans:spring定义bean支持
spring-core:核心工具类,其他模块大量使用spring-core
spring-contest:运行时的spring容器
spring-expression:使用表达式语言在运行时查询和操作对象
- AOP (面向切面)
spring-aop:基于代理的AOP支持
spring-Aspects:基于Aspectj的AOP支持
- 消息
Spring-Message:对消息架构和协议的支持
- web
spring-web:提供基础的web集成功能,在web项目中提供spring的容器
spring-webmvc:提供基于Servlet的Spring MVC
spring-webSocket:提供WebSocket功能
spring-webmvc-portlet:提供Portlet环境支持
- 数据访问、集成(Data Access/Integration)
Spring-JDBC:提供JDBC访问数据库支持
spring-TX:提供编程式和声明式事务支持
spring-ORM:提供对象、关系映射技术支持
spring-OXM:提供对对象、xml映射技术支持
spring-JMS:提供对JMS支持
四、小结
通过对spring的模块和spring的发展,可以说对spring有了更加宏观的了解,不谋全局者不足谋一域,在研究技术的时候,还是要有一个全局观,然后思维导图跟上。