Spring整体架构

Spring的整体架构

Spring框架是分层架构的,它包含了一系列的功能要素。

            Spring整体架构图

模块分类

1. Core Container

  Core Container (核心容器)包含 Core,Beans,Context,Expression Language四个模块。

  Core和Beans是Spring的基础部分,提供Ioc(控制反转)和依赖注入。

    ●Core模块:见名知意就是核心的意思。该模块主要包含Spring基本的核心工具类,Spring的其他组件都要使用其中的类,Core模块是其他组件的基本核心。

    ●Beans模块是所有应用都要用到的,它包含访问配置文件,创建和管理bean以及进行(Ioc/DI)操作相关的类。

    ●Context模块构建在Core和Beans的基础之上,提供了一种类似于JNDI(Java命名和目录接口,详情百度)注册器的框架式的对象访问方法。Context模块为Spring的核心提供了大量扩展。ApplicationContext接口是Context模块的关键。

    ●Expression Language模块提供了一个强大的表达式语言用于在运行时查询和操作对象。

2. Data Access/Integration

  Data Access/Integration包含有JDBC,ORM,OXM,JMS和Transaction五个模块。

    ●JDBC模块提供了一个JDBC抽象层,它可以消除冗长的JDBC编码和解析数据库厂商特有的错误代码。这个模块包含了Spring对JDBC数据访问进行封装的类。

    ●ORM(对象-关系映射)该模块就是对象-关系映射API。

    ●OXM模块提供了一个对Object/XML映射实现的抽象层,Object/XML映射实现包括JAXB,Castor,XMLBeans,JiBX和XStream。

    ●JMS(Java Messaging Service)模块主要包含了一些制造和消费信息的特性。

    ●Transcation模块主持编程和声明性的事务管理,这些事务必须实现特定的接口,并且对所有的POJO(简单Java对象,即没有继承任何类,没有实现任何接口,没有被框架入侵的Java对象)都使用。

3. Web

  Web上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文。所以,Spring框架支持与Jakarta Struts的集成。Web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。Web层还包含了Web,Web-Servlet,Web-Struts和Web-Porlet模块

    ●Web模块提供了基础的面向Web的集成特性。它还包含了Spring远程支持中Web的相关部分。

    ●Web-Servlet模块web.servlet.jar:该模块包含Spring的model-view-controller(MVC)实现。Spring的MVC框架是的模型范围内的代码和web forms之间能够清楚地分离开,并与Spring框架的其他特性集成在一起。

    ●Web-Struts模块提供了对Struts的支持。

    ●Web-Porlet模块提供了用于Porlet环境和Web-Servlet模块的MVC的实现。

4. AOP

  AOP模块提供了一个符合AOP联盟标准的面向切面的实现。它让我们可以定义例如拦截器和切点,从而将逻辑代码分开,降低它们之间的耦合度。利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中。

  Spring AOP 模块为基于Spring的应用程序中的对象提供了事务管理服务。通过使用Spring AOP,不用依赖EJB组件就可以将声明性事务管理继承到应用程序中。

    ●Aspects模块提供了对象AspectJ的集成支持。

    ●Instrumentation模块提供了class instrumentation支持和classloader实现,使得可以在特定的应用服务器上使用。

5. Test

  Test模块支持使用JUnit和TestNG对Spring组件进行测试。

Spring整体架构的更多相关文章

  1. 【Spring源码深度解析系列 】Spring整体架构

    一.Spring的整体架构和模块 二.模块分类: 1.Core Container Core Container包含有Core .Beans.Context.和Expression  Language ...

  2. spring源码学习——spring整体架构和设计理念

    Spring是在Rod Johnson的<Expert One-On-One J2EE Development and Design >的基础上衍生而来的.主要目的是通过使用基本的java ...

  3. Spring 整体架构

    1. Core Container:核心容器(core.Beans.Context.Expression Language   Core.Beans框架基础构成,提供IOC.依赖注入特性.BeanFa ...

  4. (转) Spring源码阅读 之 Spring整体架构

    标签(空格分隔): Spring 声明:本文系转载,原地地址:spring framework 4 源码阅读 Spring骨架 Spring的骨架,也是Spring的核心包.主要包含三个内容 cont ...

  5. 第一章 Spring整体架构和环境搭建(待续)

    ········

  6. Spring技术内幕:设计理念和整体架构概述(转)

    程序员都很崇拜技术大神,很大一部分是因为他们发现和解决问题的能力,特别是线上出现紧急问题时,总是能够快速定位和解决. 一方面,他们有深厚的技术基础,对应用的技术知其所以然,另一方面,在采坑的过程中不断 ...

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

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

  8. spring源码深度解析—Spring的整体架构和环境搭建

    概述 Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用.Spring是于2003 年兴起的一个轻量级的Java 开发框 ...

  9. Spring的整体架构的认识

    Spring的整体架构的认识 一).spring是用来做什么的? spirng使用基本的JavaBean来完成以前EJB所完成的事. 二).EJB EJB: Enterprise JavaBean, ...

随机推荐

  1. PCB 规则引擎之编辑器(语法着色,错误提示,代码格式化)

    对于一个规则引擎中的脚本代码编辑器是非常关键的,因为UI控件直接使用对象是规则维护者,关系到用户体验,在选用脚本编辑器的功能时除了满足代码的编辑的基本编辑要求外,功能还需要包含;语法着色,错误提示,代 ...

  2. [Apple开发者帐户帮助]九、参考(4)支持的功能(macOS)

    macOS应用程序可用的功能取决于您的程序成员身份和签名证书. 能力 ADP 开发者ID Apple开发者 应用程序组 App沙盒 游戏中心     硬化运行时 iCloud:CloudKit   i ...

  3. 最大正方形 同luogu1387

    这道题下面这么写就够了(n<=100)暴力,枚举 #include<bits/stdc++.h> #define ULL unsigned long long #define MAX ...

  4. 【Codeforces576E_CF576E】Painting Edges(可撤销并查集+线段树分治)

    题目 CF576E 分析: 从前天早上肝到明天早上qwq其实颓了一上午MC ,自己瞎yy然后1A,写篇博客庆祝一下. 首先做这题之前推荐一道很相似的题:[BZOJ4025]二分图(可撤销并查集+线段树 ...

  5. Android从Camera中获取图片的两种方法

    方法一: 此方法会由Camera直接产生照片回传给应用程序,但是返回的是压缩图片,显示不清晰 ? 1 2 3 4 5 6 try {      Intent cameraIntent = new In ...

  6. MVC系列学习(一)-新语法

    本篇内容: 1.自动属性 2.隐式类型 3.对象初始化器和集合初始化器 4.匿名类型 5.扩展方法 6.Lambda表达式 1.自动属性 使用: class Student { public stri ...

  7. JS——input标签注册事件

    注意:淘宝的lable是用定位制作的,事件是oninput事件 <!DOCTYPE html> <html> <head lang="en"> ...

  8. 关于java 关键字enum不识别的解决办法

    从别人那儿拷贝过来的myeclipse java工程,打开一看标红了一大片,仔细一看,原来是不识别enum关键字,这就有点尴尬了. 我自己重新建了一个java工程,测试了下,假如我在新建工程的时候选择 ...

  9. (转)Hibernate的一级缓存

    http://blog.csdn.net/yerenyuan_pku/article/details/70148567 Hibernate的一级缓存 Hibernate的一级缓存就是指Session缓 ...

  10. Style在Android中的继承关系

    Style在Android中的继承关系 Android的Styles(样式)和Themes(主题)非常类似Web开发里的CSS,方便开发者将页面内容和布局呈现分开.Style和Theme在Androi ...