Spring 体系结构详解


核心容器(Core Container)

Core和Beans模块提供了Spring最基础的功能,提供IOC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。

Context模块基于Core和Bean来构建,它提供了用一种框架风格地方式来访问对象,有些像JNDI注册表。Context封装包继承了beans包的功能,还增加了国际化(I18N),事件传播,资源装载,以及透明创建上下文,例如通过servlet容器,以及对大量JavaEE特性的支持,如EJB,JMX.核心接口是ApplicationContext.

Expression Language,表达式语言模块,提供了在运行期间查询和操作对象图的强大能力。支持访问和修改属性值,方法调用,支持访问及修改数组、容器和索引器,命名变量,支持算数和逻辑运算,支持从spring容器获取Bean,它也支持列表投影、选择和一般的列表聚合等。

数据访问/集成部分(Data Access/Integration)

JDBC模块,提供对JDBC的抽象,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。

ORM模块,提供了常用的“对象/关系”映射API的集成层。其中包括JPA、JDO、Hibernate和iBatis.利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射,如简单声明式事务管理。

OXM模块,提供一个支持Object和XML进行映射的抽象层。其中包括JAXB、Castor、XMLBeans、JiBX和XStream.

JMS模块,提供一套“消息生产者、消费者”模板用于更加简单的使用JMS,JMS用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

Transaction模块,支持程序通过简单声明式事务管理,只要是Spring管理对象都能得到Spring管理事务的好处,即使是POJO,也可以为他们提供事务。

web

web-socket模块,websocket protocol是HTML5一种新的协议。它实现了浏览器与服务器全双工通信,spring支持websocket通信。

web模块,提供了基础的web功能。例如多文件上传、集成IOC容器、远程过程访问以及对webservice支持,并提供一个RestTemplate类来提供方便的Restful services访问。

web-servlet模块,提供了web应用的model-view-controller(MVC)实现。spring mvc框架提供了基于注解的请求资源注入、更简单的数据绑定、数据验证等及一套非常易用的JSP标签,完全无缝与spring其他技术协作。

web-portlet模块,提供了在portlet环境下的mvc实现。

AOP

aop模块,提供了符合aop联盟规范的面向切面的编程实现,让你可以定义如方法拦截器和切入点,从逻辑上讲,可以减弱代码的功能耦合,清晰地被分离开。而且,利用源码级地元数据功能,还可以将各种行为信息合并到你的代码中。

aspects模块,提供了对AspectJ的集成。

Instrumentation模块,提供一些类级的工具支持和ClassLoader级的实现,可以在一些特定的应用服务器中使用。

Test

Test模块,提供对使用JUnit和TestNG来测试Spring组件的支持,它提供一致的ApplicationContext并缓存这些上下文,它还能提供一些mock对象,使得你可以独立地测试代码。

Spring 体系结构详解相关推荐

  1. Spring体系结构详解

    Spring体系结构图 core container a) beans与core 它们提供spring框架最基本功能,包含ioc与di b) context 上下文对象,基于beans与cores c ...

  2. Spring AOP详解(转载)所需要的包

    上一篇文章中,<Spring Aop详解(转载)>里的代码都可以运行,只是包比较多,中间缺少了几个相应的包,根据报错,几经百度搜索,终于补全了所有包. 截图如下: 在主测试类里面,有人怀疑 ...

  3. Spring JDBC详解

    <Spring JDBC详解> 本文旨在讲述Spring JDBC模块的用法.Spring JDBC模块是Spring框架的基础模块之一. 一.概述 在Spring JDBC模块中,所有的 ...

  4. java异常体系结构详解

    java异常体系结构详解 参考文章: (1)java异常体系结构详解 (2)https://www.cnblogs.com/hainange/p/6334042.html 备忘一下.

  5. java异常体系_JAVA异常体系结构详解

    一.什么是异常 异常:程序在运行过程中发生由于硬件设备问题.软件设计错误等导致的程序异常事件.(在Java等面向对象的编程语言中)异常本身是一个对象,产生异常就是产生了一个异常对象.      --百 ...

  6. [转载]Spring配置文件详解一:

    2019独角兽企业重金招聘Python工程师标准>>> 原文地址:Spring配置文件详解一:<context:annotation-config/>与<conte ...

  7. struts2+hibernate+spring配置详解

    #struts2+hibernate+spring配置详解 struts2+hibernate+spring配置详解 哎 ,当初一个人做好难,现在终于弄好了,希望自学这个的能少走些弯路. 以下是自己配 ...

  8. oracle有哪两种内存结构,Oracle体系结构详解(物理构造,内存结构和逻辑结构)...

    当前位置:我的异常网» 数据库 » Oracle体系结构详解(物理构造,内存结构和逻辑结构 Oracle体系结构详解(物理构造,内存结构和逻辑结构) www.myexceptions.net  网友分 ...

  9. 计算机网络体系结构详解(7层、5层、4层的区别)

    计算机网络体系结构详解(7层.5层.4层的区别) 前言: 在学习计算机网络体系结构模型的时候,相信大家经常会有这样的疑惑?计算机网络体系结构到底是多少层模型?其实,无论是说7层.5层还是4层都是可以的 ...

最新文章

  1. 使用fiddler4做代理调试手机页面
  2. 温州大学《深度学习》课程课件(四、浅层神经网络)
  3. ARM 之十一__weak 和 __attribute__((weak)) 关键字的使用
  4. js字符串与数组的处理
  5. 小程序 pagescrollto_微信小程序学习笔记(三)-- 首页及详情页开发
  6. java dom获取命名空间属性_java – 如何在XML DOM对象中添加命名空间前缀?
  7. anaconda 设置python3为主_【windows】下Anaconda详细安装过程
  8. 设计模式—原型模式及其扩展(思维导图)
  9. 金融破段子 | 如果早知赚钱概率只有8%,你会不会改变投资策略
  10. poj3414 Pots
  11. 锐捷长ping_锐捷交换机常用操作命令
  12. Qt视频直播软件--项目实战(Day8)
  13. 820操作系统(2)进程管理
  14. Wincc常用C脚本
  15. OpenGL学习之路18---- 点光源
  16. rtk手簿Android代码,中海达rtk手机测量软件(Hi-Survey Road)
  17. 使用jemdoc制作个人主页
  18. 「津津乐道播客」#380 津津有味:厨房重地举目皆是刚需,将就不得
  19. 阿斯利康联手多家诊断公司,共建肺癌诊疗生态圈
  20. Z字型变幻,整数反转

热门文章

  1. 太强了!Kaggle竞赛宝典方案汇总
  2. 翻译神器拓宽语言沟通边界传神TransnBox、T1惊艳中国企业互联网CEO 峰会
  3. MySQL不能插入中文字符及中文字符乱码问题
  4. Mosaic获5.5亿美元住宅太阳能融资贷款
  5. Java Master-Worker模式实现
  6. kafka java客户端编程
  7. forget password of WEBLOGIC user
  8. 【pycharm使用指南】pycharm 取消连按两下shift出现的全局搜索 | pycharm误触出搜索弹窗
  9. word文档出现方格乱码
  10. reactjs antd(ant-design)安装、基本使用及css样式的按需引入