Spring框架总体由五大部分组成:Core Container(核心容器)、AOP、Web、Data Access(数据访问和集成)、Test(测试框架)。
下面具体介绍各大模块的具体内容:
- Core Container(核心容器)
Core:
包含了Spring框架基本的核心工具类,Core模块是其他组件的基本核心。
Beans:
是所有应用都要用到的模块,它包含访问配置文件、创建和管理bean、进行IoC和DI相关操作的所有类。其最主要的组件BeanFactory,它的提供了对工厂模式的经典实现来消除对程序性单例模式的需要,并真正允许你从程序逻辑中分离出依赖关系和配置。
Context:
构建于Core和Beans模块基础之上,扩展了BeanFactory的功能,为Spring提供了大量扩展,如对i18n国际化、Bean生命周期控制、框架事件体系、资源加载、事件传播的支持;该模块还提供了许多企业级服务的支持,例如邮件、任务调度、JNDI获取、EJB集成、远程访问等。ApplicationContext接口是Context模块的关键。
SpEL:
提供了一个强大的表达式语言用于在运行时查询和操纵对象。
- Data Access/Integration(数据访问与集成)
JDBC:是Spring对JDBC数据访问的封装,提供了一个JDBC抽象层,消除了冗长的JDBC代码。
ORM:提供对对象关系映射框架的支持。
OXM:提供了对Object/XML映射实现的抽象层。
JMS:Java消息服务。
Transaction:支持编程和声明性事务管理。
- Web
Web:提供了基础的web功能。如文件上传、使用servlet listeners初始化IoC容器等
Servlet:即SpringMVC 框架,它是一个全功能的构建 Web 应用程序的 MVC 实现,对Servlet进行了封装。通过策略接口,MVC 框架变成为高度
可配置的,MVC 容纳了大量视图技术,
其
中包括 JSP、Velocity、Tiles、iText 和 POI。
Portlet:提供了基于Porlet的MVC实现。
WebSocket:提供了一个在Web应用中高效、双向的通信工具。
- AOP
AOP:提供了面向切面编程的实现,让你可以定义方法拦截器和切点,从而将逻辑代码分开,降低代码间的耦合性。
Aspects:提供了对AspectJ的集成支持,这是一个功能强大且成熟的面向方面编程(AOP)框架。
WebSocket:提供了一个在Web应用中高效、双向的通信工具。
Instrumentation:
提供了在特定的应用服务器中使用类工具的支持和类加载器实现。
- Test
支持使用JUnit和TestNG对Spring组件进行测试。