Spring 可能成为所有企业应用程序的一站式服务点。 但是,Spring 是模块化的,允许我们选择适用于自己的模块,而无需引入其余模块。 以下部分提供有关 Spring Framework 中所有可用模块的详细信息。
Spring Framework 提供了大约 20 个模块,可以根据应用程序需求使用它们。
核心容器
核心容器由 Core、Beans、Context 和 Expression Language 模块组成,其详细信息如下
- Core 模块提供了框架的基本部分,包括 IoC 和依赖注入特性。
- Bean 模块提供了 BeanFactory,它是工厂模式的复杂实现。
- Context 模块建立在 Core 和 Beans 模块提供的坚实基础之上,它是访问任何已定义和配置的对象的媒介。 ApplicationContext 接口是 Context 模块的焦点。
- SpEL 模块提供了一种强大的表达式语言,用于在运行时查询和操作对象图。
Data Access/Integration
Data Access/Integration 层由 JDBC、ORM、OXM、JMS 和事务模块组成,其详细信息如下
- JDBC 模块提供了一个 JDBC 抽象层,无需繁琐的 JDBC 相关编码。
- ORM 模块为流行的对象关系映射 API 提供集成层,包括 JPA、JDO、Hibernate 和 iBatis。
- OXM 模块提供了一个抽象层,它支持 JAXB、Castor、XMLBeans、JiBX 和 XStream 的对象/XML 映射实现。
- JMS (Java 消息传递服务) 模块包含用于生成和使用消息的功能。
- Transaction 模块支持对实现特殊接口的类和所有 POJO 的编程和声明式事务管理。
Web
Web 层由 Web、Web-MVC、Web-Socket 和 Web-Portlet 模块组成,其详细信息如下 -
- Web 模块提供基本的面向 Web 的集成功能,例如多部分文件上传功能和使用 servlet 侦听器和面向 Web 的应用程序上下文初始化 IoC 容器。
- Web-MVC 模块包含 Spring 的 Web 应用程序的模型-视图-控制器 (MVC) 实现。
- Web-Socket 模块为 Web 应用程序中客户端和服务器之间基于 WebSocket 的双向通信提供支持。
- Web-Portlet 模块提供了在 Portlet 环境中使用的 MVC 实现,并反映了 Web-Servlet 模块的功能。
其他层
很少有其他重要的模块,如 AOP、Aspects、Instrumentation、Web 和 Test 模块,其详细信息如下
- AOP 模块提供了面向方面的编程实现,允许我们定义方法拦截器和切入点,以清晰地解耦实现应该分离的功能的代码。
- Aspects 模块提供与 AspectJ 的集成,这又是一个强大且成熟的 AOP 框架。
- Instrumentation 模块提供类检测支持和类加载器实现以在某些应用程序服务器中使用。
- Messaging 模块提供对 STOMP 作为 WebSocket 子协议的支持,以便在应用程序中使用。 它还支持用于路由和处理来自 WebSocket 客户端的 STOMP 消息的注释编程模型。
- Test 模块支持使用 JUnit 或 TestNG 框架测试 Spring 组件。