1.1 Spring的特性

Spring基于J2EE技术实现了一套轻量级的Java Web Service系统应用框架。它有很多优秀的特性,很多公司都选择把Spring作为产品或项目的基础开发架构。Spring的特性包括轻量、控制反转(Inversion of Control,IoC)、面向容器、面向切面(Aspect Oriented Programming,AOP)和框架灵活,具体如图1-1所示。

图1-1 Spring的特性

1.1.1 轻量

从JAR包的大小上来说,Spring是一个轻量级的框架,其核心JAR包spring-web-5.2.0.RELEASE.jar和spring-core-5.2.0.RELEASE.jar的大小均为1.4MB左右;从系统的资源使用上来说,Spring也是一个轻量级的框架,其运行期间只需要少量的操作系统资源(内存和CPU)便能稳定运行。除此之外,Spring还是模块化的,应用程序在使用过程中可以根据需求引入模块(以JAR包依赖方式引入)来实现不同的功能,使其应用更加灵活。

1.1.2 控制反转

Spring的控制反转指一个对象依赖的其他对象将会在容器的初始化完成后主动将其依赖的对象传递给它,而不需要这个对象自己创建或者查找其依赖的对象。Spring基于控制反转技术实现系统对象之间依赖的解耦。

1.1.3 面向容器

Spring实现了对象的配置化生成和对象的生命周期管理,因此,可以理解为其是面向容器的。通过Spring的XML文件或者注解方式,应用程序可以配置每个Bean对象被创建和销毁的时间,以及Bean对象创建的先后顺序和依赖关系。Spring中的实例对象可以是全局唯一的单例模式,也可以在每次需要时都重新生成一个新的实例,具体以哪种方式创建Bean对象由Bean的生命周期决定,通过prototype属性来定义。

1.1.4 面向切面

Spring提供了面向切面的编程支持,面向切面技术通过分离系统逻辑和业务逻辑来提高系统的内聚性。在具体的使用过程中,业务层只需要关注并实现和业务相关的代码逻辑,而不需要关注系统功能(例如系统日志、事务支持)和业务功能的复杂关系,Spring通过面向切面技术将系统功能自动织入业务逻辑的关键点。

1.1.5 框架灵活

基于容器化的对象管理技术,Spring中的对象可以被声明式地创建,例如通过XML文件或注解的方式定义对象和对象之间的依赖关系。Spring作为一个轻量级的J2EE Web框架,具有事务管理、持久化框架集成和Java Web服务等功能,应用程序可以根据需求引入相应的模块,以实现不同的功能。