Spring Framework
Spring 是一款开源的轻量级 Java 开发框架,旨在提高开发人员的开发效率以及系统的可维护性。
Spring 框架指的都是 Spring Framework,它是很多模块的集合,如下图所示:
一、Core Container
Spring 框架的核心模块,也可以说是基础模块,Spring 其他所有的功能基本都需要依赖于该模块。
Beans
:提供对 bean 的创建、配置和管理等功能的支持。Core
:提供了框架的基本组成部分,包括IOC控制反转
和DI依赖注入
功能。Context
:提供了上下文(ApplicationContext)的支持,包括资源加载、事件传播、国际化等功能。Expression
:提供对SpEL(Spring Expression Language) 表达式的支持。
二、AOP 模块
AOP
:提供了AOP面向切面的编程实现,允许定义方法拦截器和切入点,将代码按照功能进行分离,以便干净地解耦。Aspects
:提供了与AspectJ
的集成功能,AspectJ
是一个功能强大且成熟的AOP框架。
三、数据访问/集成 模块
JDBC
:提供了一个JDBC的抽象层,消除了烦琐的JDBC编码和数据库厂商特有的错误代码解析。ORM
:提供对 Hibernate、JPA 、iBatis 等 ORM 框架的支持。OXM
:提供一个抽象层支撑 OXM(Object-to-XML-Mapping),例如:JAXB、Castor、XMLBeans、JiBX 和 XStream 等。JMS
:消息服务。自 Spring Framework 4.1 以后,它还提供了对 spring-messaging 模块的继承。Transactions
:提供声明式事务管理。
四、Web模块
Web
:提供了基本的Web开发集成功能,例如多文件上传功能、使用Servlet监听器初始化一个IOC容器以及Web应用上下文。WebMVC
:包含用于 web应用程序 的 Spring MVC 和 REST Web Services 实现。WebSocket
:提供了对 WebSocket 的支持,WebSocket 可以让客户端和服务端进行双向通信。WebFlux
:提供对 WebFlux 的支持。WebFlux 是 Spring Framework 5.0 中引入的新的响应式框架,完全异步。
五、Messaging 模块
Messaging
是 Spring 对消息传递机制的支持模块,它提供了一套丰富的 API 和组件,用于实现基于消息的应用程序和微服务。
六、Instrument 模块
Instrument
模块是 Spring Framework 的一个扩展模块,提供了对 JVM 的 Instrumentation API 的支持。
- Instrumentation API 允许在 Java 程序运行时动态修改类定义和字节码,以实现一些高级的监控和诊断功能。
Instrumentation 模块通常与 Spring 的 AOP 模块结合使用,以实现对应用程序的动态代理和增强。
- 例如,使用 Instrumentation API 在运行时生成代理类,并将拦截逻辑插入到方法执行前后,从而实现日志记录、性能统计等功能。
七、Test 模块
Test 模块 支持使用 JUnit 或 TestNG 对Spring组件进行单元测试和集成测试。