Spring框架至今已集成了20多个模块。这些模块主要被分如下图所示的核心容器、数据访问/集成、Web、AOP(面向切面编程)、工具、消息和测试模块。
注:标红为常用模块。
-
Spring核心容器:该层基本上是Spring的核心。它包含以下模块:Spring Core、Spring Bean、SpEL(Spring Expression Language)、Spring Context。
Spring核心容器-Spring Core:核心容器,提供Spring框架的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现。BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。核心类库,提供IOC服务。
Spring上下文-Spring Context:Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring上下文包括企业服务,例如JNDI、EJB、电子邮件、国际化、检验和调度功能。提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等)。 -
数据访问/集成–该层提供与数据库交互的支持。它包含以下模块:JDBC(Java DataBase Connectivity)、ORM(Object Relational Mapping)、OXM(Object XML Mappers)、JMS(Java Messaging Service)、Transaction。
Spring DAO:为JDBC DAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO的面向JDBC的异常遵从通用的DAO异常层次结构。对JDBC的抽象,简化了数据访问异常的处理。
Spring ORM:Spring框架插入了若干个ORM框架,从而提供了ORM的对象关系工具,其中包括JDO、Hibernate和iBatis SQL Map。所有这些都遵从Spring的通用事务和DAO异常层次结构。对现有的ORM框架的支持。 -
Web–该层提供了创建Web应用程序的支持。它包含以下模块:Web、Web–Servlet、Web–Socket、Web–Portlet。
Spring Web:Web上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文,所以,Spring框架支持与Jakarta Struts的集成。Web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。提供了基本的面向Web的综合特性,例如多方文件上传。
Spring MVC:MVC框架是一个全功能的构建Web应用程序的MVC实现。通过策略接口,MVC框架变成为高度可配置的,MVC容纳了大量视图技术,其中包括JSP、Velocity、Tiles、iText和POI。提供面向Web应用的Model-View-Controller实现。 -
AOP-该层支持面向切面编程
Spring AOP:通过配置管理特性,Spring AOP模块直接将面向切面的编程功能集成到了Spring框架中,可以将一些通用任务,如安全、事务、日志等集中进行管理,提高了复用性和管理的便捷性。 - Instrumentation-该层为类检测和类加载器实现提供支持。
- Test-该层为使用JUnit和TestNG进行测试提供支持。
-
几个杂项模块:
Messaging–该模块为STOMP提供支持。它还支持注解编程模型,该模型用于从WebSocket客户端路由和处理STOMP消息。
Aspects–该模块为与AspectJ的集成提供支持。