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