【架构】spring framework核心框架体系结构
Spring官方文档,用的版本为4.3.11版本。
一、引用官方文档
2.2.1核心集装箱
所述核心容器由以下部分组成spring-core
, spring-beans
,spring-context
,spring-context-support
,和spring-expression
(弹簧表达式语言)模块。
的spring-core
和spring-beans
模块提供框架的基本零件,包括IOC和依赖注入特征。这BeanFactory
是工厂模式的复杂实施。它消除了对编程单例的需要,并允许您将依赖关系的配置和规范与实际程序逻辑分离。
所述上下文(spring-context
)模块建立由设置在固体基体上的核心和豆类模块:它是访问一个框架式的方式是类似于一个JNDI注册表对象的装置。上下文模块从Beans模块继承其功能,并增加了对国际化的支持(例如使用资源束),事件传播,资源加载以及例如Servlet容器透明创建上下文。Context模块还支持Java EE功能,如EJB,JMX和基本远程处理。该ApplicationContext
接口是语境模块的焦点。 spring-context-support
支持将常见的第三方库集成到用于缓存的Spring应用程序环境(EhCache,Guava,JCache),邮件(JavaMail),调度(CommonJ,Quartz)和模板引擎(FreeMarker,JasperReports,Velocity)中。
该spring-expression
模块提供了强大的表达式语言,用于在运行时查询和操作对象图。它是JSP 2.1规范中规定的统一表达语言(统一EL)的扩展。该语言支持设置和获取属性值,属性分配,方法调用,访问数组,集合和索引器的内容,逻辑和算术运算符,命名变量以及从Spring的IoC容器中以名称检索对象。它还支持列表投影和选择以及常见列表聚合。
该spring-aop
模块提供了一个符合AOP联盟标准的面向方面的编程实现,允许您定义方法拦截器和切入点,以清理分离实现应分离的功能的代码。使用源代码级元数据功能,您还可以将行为信息与.NET属性类似。
单独的spring-aspects
模块提供与AspectJ的集成。
该spring-instrument
模块提供了在某些应用服务器中使用的类检测支持和类加载器实现。该spring-instrument-tomcat
模块包含Spring的Tomcat测试代理。
2.2.3消息传递
Spring框架4包括spring-messaging
从关键抽象模块Spring集成项目,例如Message
,MessageChannel
,MessageHandler
,和其他人作为基于消息的应用奠定了基础。该模块还包括一组用于将消息映射到方法的注释,类似于基于Spring MVC注释的编程模型。
2.2.4数据访问/集成
所述数据访问/集成层由JDBC,ORM,OXM,JMS和交易模块。
该spring-jdbc
模块提供了一个JDBC抽象层,无需对繁琐的JDBC编码和数据库供应商特定的错误代码进行解析。
该spring-tx
模块支持 针对实现特殊接口和所有POJO(普通Java对象)的类的编程和声明式事务管理。
该spring-orm
模块为流行的对象关系映射 API提供集成层 ,包括JPA, JDO和Hibernate。使用该spring-orm
模块,您可以将所有这些O/R映射框架与Spring提供的所有其他功能结合使用,例如前面提到的简单的声明性事务管理功能。
该spring-oxm
模块提供了一个支持Object / XML映射实现(如JAXB,Castor,XMLBeans,JiBX和XStream)的抽象层。
该spring-jms
模块(Java消息服务)包含用于生成和消费消息的功能。从Spring Framework 4.1开始,它提供了与spring-messaging
模块的集成 。
2.2.5 Web
所述网络层由的spring-web
,spring-webmvc
,spring-websocket
,和spring-webmvc-portlet
模块。
该spring-web
模块提供基本的面向Web的集成功能,例如多部分文件上传功能,以及使用Servlet侦听器和面向Web的应用程序上下文初始化IoC容器。它还包含一个HTTP客户端和Spring的远程支持的Web相关部分。
该spring-webmvc
模块(也称为Web-Servlet模块)包含用于Web应用程序的Spring的模型视图控制器(MVC)和REST Web Services实现。Spring的MVC框架提供了领域模型代码和Web表单之间的清晰分离,并与Spring Framework的所有其他功能集成。
该spring-webmvc-portlet
模块(也称为Web-Portlet模块)提供了要在Portlet环境中使用的MVC实现,并且反映了基于Servlet的spring-webmvc
模块的功能。
2.2.6测试
该spring-test
模块支持使用JUnit或TestNG对Spring组件进行单元测试和集成测试。它提供了Spring 的一致加载ApplicationContext
和这些上下文的缓存。它还提供可用于孤立测试代码的模拟对象。
二、Spring体系说明
其实Spring Framework包含了Spring Web MVC。而整个Spring体现是非常庞大的,所以在找这类文档时,最正确的做法是通过官方文档去阅读。
比如Spring体系有Spring Boot、Spring Cloud等。入口就是:https://spring.io/docs/reference,然后搜索想要的结果即可。