Spring体系架构
1
、
Core Container
(核心容器)
该模块主要包含
Core
、
Beans
、
Context
和
SpEL
模块
。其中
Core
和
Beans
是整个框架
最基础的部分
,
提供
IOC
和依赖注入特性
。这里最重要的概念就是
BeanFactory
。
- Core:包含Spring框架最基本的核心工具类
- Beans:包含访问配置文件、创建/管理Bean以及IOC/DI相关的类。
- Context:继承了Beans的特性,主要为Spring提供大量的扩展,如国际化、事件机制、资源加载等待。ApplicationContext接口是Context模块的
关键。
-
- 提供符合AOP Alliance标准的面向切面编程的实现,可以让你定义如方法拦截器和切点,从而降低程序之间的耦合性。
-
AspectJ 模块:提供了与 AspectJ 的集成
-
Instrumentation 模块:提供用于某些应用程序服务器的 类工具支持 和 类加载器实现 。
3 、 Messaging该模块具有来自 Spring Integration 项目的关键抽象,如 Message , MessageChannel , MessageHandler 等。它们构成 基于消息的应用程序的基础 。该模块还包括一组注释,用于将消息映射到方法,类似于基于 Spring MVC 注释的编程模型。
4 、 Data Access/Integration数据访问 / 集成层 由 JDBC , ORM , OXM , JMS 和事务模块组成 。- JDBC模块:提供了JDBC抽象层,从而无需进行繁琐的JDBC编码和数据库特定错误代码(不同数据代码可能不同)的解析。
- 事务模块:支持对实现特殊接口的类以及所有POJO(普通Java对象)进行编程和声明式事务管理。
- ORM模块:该模块为当前流行的ORM(包括JPA,JDO和Hibernate)提供了集成层。
- OXM模块:提供了一个抽象层,该抽象层支持Object/ XML映射实现,例如JAXB,Castor,XMLBeans,JiBX和XStream。
- JMS模块(Java Messaging Service):包含用于生成和使用消息的功能。
5 、 Web为基于 Web 的应用程序提供上下文支持。该模块 包含 Web 、 WebMVC 、 Web Socket 和 WebPorlet 模块 。- Web模块:提供了基本的面向Web的集成功能,如文件上传功能以及使用Servlet监听器和面向Web的应用程序上下文对IoC容器的初始化。
-
WebMVC 模块(也称为 WebServlet 模块):包含基于 Spring 的 ModelViewController ( MVC ) 支持和针对 Web 应用程序的 Rest Web 服务实现 。
6 、 Test该模块支持使用 JUnit 或 TestNG 对 Spring 组件进行单元测试和集成测试。总结:Core Container是spring的核心, 提供 IOC和依赖注入对bean的控制和管理。 AOP比较常用,拦截某些特定方法。