说明:以下转自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,然后搜索想要的结果即可。

参考:

http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/(官方文档)

https://www.ibm.com/developerworks/cn/java/wa-spring1/index.html

Spring Framework体系结构简介的更多相关文章

  1. Spring FrameWork体系结构及模块间依赖关系

    详见:https://www.cnblogs.com/ywlaker/p/6136625.html 几个图: (Spring3) (Spring4) 由于Spring体系结构庞大且复杂,为了简化开发者 ...

  2. spring framework体系结构及内部各模块jar之间的maven依赖关系

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

  3. [转] spring framework体系结构及内部各模块jar之间的maven依赖关系

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

  4. spring framework体系结构及模块jar依赖关系

    本文对于Spring的JAR包使用和配置,结合网友材料以spring 4.3.6.RELEASE版本为例,介绍spring框架结构和各模块对应JAR包以及模块间JAR依赖关系. 注:不同版本JAR包依 ...

  5. Spring Framework简介

    作者关于此主题早期文章 Spring框架快速入门 起源 要谈Spring的历史,就要先谈J2EE.J2EE应用程序的广泛实现是在1999年和2000年开始的,它的出现带来了诸如事务管理之类的核心中间层 ...

  6. Spring框架简介 Spring Framework Introduction

    Introduction The Spring Framework provides a comprehensive programming and configuration model for m ...

  7. Spring Framework 简介

    Spring Framework 依赖注入.事务管理.Web应用程序.数据访问.消息传递.测试和更多的核心支持. Tips: Spring 官网:https://spring.io/ spring f ...

  8. 【架构】spring framework核心框架体系结构

    Spring官方文档,用的版本为4.3.11版本. 一.引用官方文档 2.2.1核心集装箱 所述核心容器由以下部分组成spring-core, spring-beans,spring-context, ...

  9. Spring框架学习——Spring的体系结构详解

    1.Spring简介 Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题.它是一个分层的JavaSE/JavaEE ...

随机推荐

  1. Poj 3177 Redundant Paths (双连通分支+节点统计)

    题目描述: 给出一个无向的连通图,问最少加入几条边,才能使所给的图变为无桥的双连通图? 解题思路: 可以求出原图中所有的不包含桥的所有最大连通子图,然后对连通子图进行标记缩点,统计度为1的叶子节点le ...

  2. 理解 Java 构造函数不可以继承

    参考来源:http://www.52bowen.com/a/2604620.html

  3. 小白的python之路 序

    计算机专科毕业,.net开发已有8年有余,中途断断续续,似懂非懂,积累了一些经验知识,但是不求甚解,属于那种一瓶不满半瓶子晃荡,这么一个状态. 主要从事web开发,涉及一些前端jq等,还有接口开发,搜 ...

  4. js作用域、异步——学习笔记

    所有的 for if switch while do 等等,都属于块级作用域,里面声明的对象,外面也能访问.但function 函数里的作用域,在函数外是访问不到的. 但函数作用域里面可以访问外面. ...

  5. Floating-point exception

    Floating-point exception 同一个程序在一台高版本Linux上运行时没有问题,而在另一台低版本机器上运行报Floating Point Exception时,那么这极有可能是由高 ...

  6. div常用效果方法-transform

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  7. 介绍Git的17条基本用法

    本文将介绍Git的17条基本用法.本文选自<Python全栈开发实践入门>. 1.初始化Git仓库 Git仓库分为两种类型:一种是存放在服务器上面的裸仓库,里面没有保存文件,只是存放.gi ...

  8. python学习小结-字典key,val互换

    第一种,使用压缩器: >>> m = {'a': 1, 'b': 2, 'c': 3, 'd': 4} >>> zip(m.values(), m.keys()) ...

  9. 【sqli-labs】【jsp/tomcat】 less29 less30 less31 less32 (GET型利用HTTP参数污染的注入)

    sqli-labs带了几个Java版本的web注入,在tomcat-files.zip里 以Less29为例,查看源码,可以看出请求最后还是提交给了php应用,难怪less29文件夹下有一个没有任何防 ...

  10. 【sqli-labs】 less62 GET -Challenge -Blind -130 queries allowed -Variation1 (GET型 挑战 盲注 只允许130次查询 变化1)

    允许130次尝试,然后是个盲注漏洞,看来要单字符猜解了 加单引号,页面异常,但报错被屏蔽了 http://192.168.136.128/sqli-labs-master/Less-62/?id=1' ...