当前位置: 首页 > news >正文

spring framework 模块简介

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

        经常使用spring ,偶尔也看看了spring 一些分析,本文是对spring framework的模块进行简单介绍,方便加深理解和以后查找,主要是对spring framework reference文档的引用和翻译。

        spring 主要有20个模块组成,这些模块封装在core container(核心)层,data aceess/intergration 层(数据访问),web层(网页),aop层(切面编程),Instrumentation层(工具),Messaging层(消息JMS) 这六层,还有测试层。下面是spring framework模块结构图。

200430_XDu5_2563693.png

spring core container

       spring core container主要有 spring-beans,spring-core,spring-context,spring-context-support,

spring-expression组成。

      spring-beanspring-core提供了spring framework 框架的基础核心功能,包括依赖注入(IOC)和控制反转(DI)。BeanFactory 是工程模式的复杂实现,它不需要通过编程实现单例,可以让你将业务逻辑中的依赖关系和配置解耦出来。

      spring-context 模块建立在 spring-beans,spring-core 坚固基础上。它提供了一种类似注册JNDI的访问spring容器内对象的手段,context 模块继承beans 模块的特性并增加国际化支持(例如:资源绑定)。事件传播,资源加载,透明创建context。例如,一个servlet容器,context模块同样支持Java ee的特性。如EJB,JMX 和远程调用。applicationContext 接口是是context模块的核心。spring-context-support 整合缓存(EHCache,Guava,Jcache),邮件(javaMail),定时任务(commonJ,quartz)和模板引(freemarker,jasperReport,velocity)这些常用第三方框架。

    spring-expression 模块提供在运行时,查询、操作对象的强大表达式语言,它是对JSP2.1规范统一EL标准的扩展实现,该表达式语言支持设置和获取对象属性值,属性初始化,方法调用,访问数组,列表,集合内容,支持逻辑和算术运算操作,设置变量,从spring IOC 容器中根据变量名称获取对象的值。同样支持list 投影和选择和列表聚合。

aop and instrumentation

       spring-aop 模块实现允许自定义面向切面编程。如方法拦截,解耦分离函数代码,使用源代码级别的元数据功能,你可以行为信息写在代码中类似在.net attributes管理。

       spring-aspect模块整合第三方库AspectJ

       spring-instrument模块提供class整合支持和在包含应用服务器中使用的类加载器。spring-instrument-tomcat 模块对tomcat容器的代理。


messaging

spring framework 4 包含了 spring-messaging 模块,是从spring intergration项目抽象出 如Message,MessageChannel,MessageHandler,和其他的服务器的基础信息应用。该模块同时包含了一些用来映射消息到方法的注解,就行spring mvc 编程模型的注解。


data access/integration

    data access/integration 层由JDBC,ORM,OXM,JMS 和transaction 模块组成。

    spring-jdbc 模块对jdbc抽象出来,移除了jdbc数据库操作的重复的编码和解析不同数据库厂商的错误代码。

    spring-tx 模块实现对特定接口或POJOS对象提供编程方式和声明方式的事务管理。

    spring-orm整合了流行的ORM(对象关系映射)框架,包括JPA,JDO,和hibernate,使用这些框架后同时可以使用spring-orm模块的其它的特性。如声明事务管理特性。

     spring-oxm 模块整合了对xml第三方框架如JAXB,CASTOR,XMLBeans,JiBx 和XStream.

     spring-jms 模块提供包含生产和消费消息特性。从4.1版本开始它和整合了spring-messaging模块。

    

 web

       web层由spring-web,spring-webmvc,spring-websocket 和spring-portlet模块组成。

       spring-web提供诸如文件上传 使用servlet lislener 初始化IoC容器,和一个web方面的 application context等基础特性,同时包含一个http客户端和web相关的spring远程支持。

       spring-webmvc 模块(也叫spring-servlet模块)包含了spring实现的 mvc  和 REST 风格的web服务的实现,spring 的mvc框架清晰的隔离了domain model 代码和web表单代码,并整合了所有spring其他的特性。

       spring-webmvc-porltet 模块(也叫spring-portlet模块)在portlet环境下使用spring-mvc和spirng-webMvc模块的其他基础功能。


英语水平有限,错误难免,请指正





转载于:https://my.oschina.net/u/2563693/blog/658831

相关文章:

  • Vue2.5 零基础开发去哪儿网实战(二) - 起步 Vue.js
  • 数组(list)分组、分段
  • 编译并导入OpenSSL
  • Rsync软件错误总结
  • 《TCP/IP具体解释卷2:实现》笔记--ICMP:Internet控制报文协议
  • 小程序button引导用户授权
  • 初识云计算的三种服务模式 (IaaS SaaS PaaS)
  • 大数据hadoop领域技术总体介绍(各个组件的作用)
  • 使用git时候,屏蔽gitignore自身
  • 【VMCloud云平台】拥抱Docker(四)定制属于自已的镜像
  • vue ----自定义指令Vue.directive(),实现拖拽
  • Scalaz(14)- Monad:函数组合-Kleisli to Reader
  • 微软以白金会员加入 OpenChain 开源组织
  • 数学公式
  • 彻底搞懂浏览器Event-loop
  • @jsonView过滤属性
  • 《深入 React 技术栈》
  • ES6--对象的扩展
  • express.js的介绍及使用
  • HTML5新特性总结
  • JavaScript-Array类型
  • JavaScript的使用你知道几种?(上)
  • java小心机(3)| 浅析finalize()
  • mysql_config not found
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • SpringCloud集成分布式事务LCN (一)
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • Vue组件定义
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 工程优化暨babel升级小记
  • 前嗅ForeSpider中数据浏览界面介绍
  • 为视图添加丝滑的水波纹
  • scrapy中间件源码分析及常用中间件大全
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • (C++20) consteval立即函数
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)重识new
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .net快速开发框架源码分享
  • @Autowired自动装配
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @JsonSerialize注解的使用
  • [Android] 240204批量生成联系人,短信,通话记录的APK
  • [BUUCTF 2018]Online Tool
  • [bzoj4010][HNOI2015]菜肴制作_贪心_拓扑排序
  • [C/C++]数据结构----顺序表的实现(增删查改)