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