Spring官方文档,用的版本为4.3.11版本。

一、引用官方文档

  2.2.1核心集装箱

  所述核心容器由以下部分组成spring-core, spring-beansspring-contextspring-context-support,和spring-expression(弹簧表达式语言)模块。

spring-corespring-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容器中以名称检索对象。它还支持列表投影和选择以及常见列表聚合。

  2.2.2 AOP和仪器

  该spring-aop模块提供了一个符合AOP联盟标准的面向方面的编程实现,允许您定义方法拦截器和切入点,以清理分离实现应分离的功能的代码。使用源代码级元数据功能,您还可以将行为信息与.NET属性类似。

  单独的spring-aspects模块提供与AspectJ的集成。

  该spring-instrument模块提供了在某些应用服务器中使用的类检测支持和类加载器实现。该spring-instrument-tomcat模块包含Spring的Tomcat测试代理。

  2.2.3消息传递

  Spring框架4包括spring-messaging从关键抽象模块Spring集成项目,例如MessageMessageChannelMessageHandler,和其他人作为基于消息的应用奠定了基础。该模块还包括一组用于将消息映射到方法的注释,类似于基于Spring MVC注释的编程模型。

  2.2.4数据访问/集成

  所述数据访问/集成层由JDBC,ORM,OXM,JMS和交易模块。

  该spring-jdbc模块提供了一个JDBC抽象层,无需对繁琐的JDBC编码和数据库供应商特定的错误代码进行解析。

  该spring-tx模块支持 针对实现特殊接口和所有POJO(普通Java对象)的类的编程和声明式事务管理。

  该spring-orm模块为流行的对象关系映射 API提供集成层 ,包括JPA, JDOHibernate。使用该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-webspring-webmvcspring-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,然后搜索想要的结果即可。

【架构】spring framework核心框架体系结构的更多相关文章

  1. spring framework核心框架体系结构

    很实用,稀里糊涂的我算是看清了. 很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖 ...

  2. spring framework核心框架体系结构(转载)

    作者:Dreawer 很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spr ...

  3. Spring Framework(框架)整体架构 变迁

    Spring Framework(框架)整体架构 2018年04月24日 11:16:41 阅读数:1444 标签: Spring框架架构 更多 个人分类: Spring框架   版权声明:本文为博主 ...

  4. Spring framework核心

    这一部分涵盖了Spring框架绝对不可或缺的所有技术. 1.IOC容器 1.1Spring IoC容器和beans介绍 org.springframework.beans和org.springfram ...

  5. Spring Framework核心概念之Bean生命周期管理

    目录 Spring Bean的生命周期 相关接口的分类 测试SpringBean生命周期的Demo程序 小结 Spring Bean的生命周期 Spring容器既Application或者WebApp ...

  6. Spring核心框架体系结构(jar包引用分析)[转]

    很多人都在用spring开发java项目,普通添加lib目录拷贝jar包,或者创建maven项目时,配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错 ...

  7. Spring 核心框架体系结构

    转载:http://www.admin10000.com/document/10447.html 很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring ...

  8. spring核心框架体系结构

    很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下 ...

  9. spring核心框架体系结构(各个jar包作用)

    转自:https://blog.csdn.net/sunchen2012/article/details/53939253 弄懂spring就是弄懂spring各个jar包的作用 spring的jar ...

随机推荐

  1. 使用nexus3.10搭建maven私有仓库

    使用nexus3.10搭建maven私有仓库-----详见如下链接-- --此贴用于笔记 https://blog.csdn.net/vipbupafeng/article/details/80232 ...

  2. sql server 建表,增删改练习

    use master --drop database Class create database Class on primary( name='Class', filename='D:\SQLTes ...

  3. php错误提示

    1.配置php.ini打开php.ini,把display_errors = Off 改成 display_errors = On然后找到 error_reporting 最好设置成error_rep ...

  4. JS基础入门篇(三十六)—面向对象( 三 )

    1.class class es6 中 为 关键字用来声明 一个 类 1.只能通过new调用 2.不存在变量提升 3.多个方法之间直接书写,不需要,隔开 4.类的方法是直接定义在类的原型上的 5.定义 ...

  5. python 去除字符串两端字符串

    转载:http://blog.sina.com.cn/s/blog_940224600100w8l0.html Python中的strip用于去除字符串的首位字符,同理,lstrip用于去除左边的字符 ...

  6. jQuery 删除行(带跨行的表格)

    jQuery 删除行(带跨行的表格) 实现效果,点击删除按钮后,在保证原来表格结构的基础上,移除当前行. 代码原理: 1.点击行后判断当前行的第一个<td>,是否包含rowspan属性,如 ...

  7. JAVA学习之面向对象

    面向对象是相对面向过程而言面向过程:强调的是功能行为面向对象:将功能封装进对象,强调具备了功能的对象 不论面向对象还是面向过程都是一种开发思想而已.举一个例子来理解面向对象和面向过程把大象装进冰箱分三 ...

  8. WPF 依赖附加属性

    附加属性的本质是一个依赖属性,与普通的依赖属性区别: 1:注册方法名不一样,如 DependencyProperty.RegisterAttached 2:没有普通的属性包装器,而是通过get和set ...

  9. 通用唯一标识码UUID的介绍及使用。

    什么是UUID? UUID全称:Universally Unique Identifier,即通用唯一识别码. UUID是由一组32位数的16进制数字所构成,是故UUID理论上的总数为16^32 = ...

  10. leetcode.数组.769最多能完成排序的块-Java

    1. 具体题目 数组arr是[0, 1, ..., arr.length - 1]的一种排列,我们将这个数组分割成几个“块”,并将这些块分别进行排序.之后再连接起来,使得连接的结果和按升序排序后的原数 ...