Spring框架—体系结构
原文作者:CHS007chs
原文地址:Spring核心框架体系结构
上图是Spring 5的模块结构图,而这些组件被分别整合在核心容器(Core Container)、AOP(Aspect Oriented Programming)、设备支持(Instrument)、数据访问及集成(Data Access/Integratioin)、Web、报文发送(Messaging)、Test等模块。
1.核心容器
- spring-core:控制反转IoC(Inversion of Control)与依赖注入DI(Dependency Injection)的基本实现,控制反转是种设计思想,即将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。
- spring-beans:Bean工厂与bean的装配,BeanFactory接口使用控制反转对应用程序的配置、依赖性规范与实际的应用程序代码进行分离。但是BeanFactory容器实例化后并不会自动实例化Bean,只有当Bean被使用时BeanFactory容器才会对该Bean进行实例化与依赖关系的装配。
- spring-context:spring的context上下文,即IoC容器,它扩展了BeanFactory,为它添加了Bean生命周期管理、框架事件体系、资源加载透明化等功能,此外该模块还提供了很多企业级支持,如远程访问、任务调度等。ApplicationContext是该模块的核心接口,它扩展了BeanFactory,ApplicationContext容器实例化后会自动对所有的单实例Bean进行实例化与依赖关系的装配,使之处于待用状态。
- spring-expression:spring表达式语言,是统计表达式语言(EL)的扩展模块,可以查询、管理运行中的对象,同时也方便的可以调用对象方法、操作数组、集合等。最出色的要数函数调用和简单字符串的模板函数。
2.AOP和设备支持
- spring-aop:面向切面编程,aop就是在某一个类或方法执行前后打个标记,声明在执行到这里之前要先执行什么,执行完这里之后要接着执行什么,插入新的执行方法。在Spring中,它是以JVM的动态代理技术为基础,然后设计一系列AOP横切实现,比如前置通知、返回通知、异常通知等,同时Pointcut接口来匹配切入点,可以使用现有切入点来设计横切面,也可以扩展相关方法根据需求进行切入。
- spring-aspects:集成AspectJ, 主要是为Spring AOOP提供多种AOP实现方法。
- spring-instrument:提供一些类级的工具支持和ClassLoader级的实现,用于服务器。该模块是基于JAVA SE中的“java.lang.instrument”进行设计的,应该算是AOP的一个支援模块,主要作用是在JVM启用时,生成一个代理类,程序员通过代理类在运行时修改类的字节,从而改变一个类的实现。
3.数据访问及集成
- spring-jdbc:jdbc的支持,主要是提供JDBC模板方式、关系数据库对象化方式、SimpleJdbc方式、事务管理来简化JDBC编程,主要实现类JdbcTemplate、SimpleJdbcTemplate、NamedParameterJdbcTemplate
- spring-tx:事务控制,通过它的AOP配置,可以灵活的配置在任何一层,但是在很多的需求和应用,直接使用JDBC事务控制还是有其优势的。
- spring-orm:对象关系映射,集成orm框架,主要集成Hibernate、Java Persistence API(JPA)和Java Data Object(JDO)用于资源管理、数据访问对象(DAO)的实现和事务策略。
- spring-oxm:对象xml映射,OXM是Object to XML Mapping的缩写,例如:jaxb, castor xmlbeans,JiBx,XStream等。
- spring-jms:java消息服务
- spring-messaging:为Spring框架集成一些基础的报文发送应用。
4.Web
- spring-web:提供最基础的web支持,主要建立在核心容器上,通过Servlet或者Listener来初始化IOC容器,也包括一些与Web相关的支持。
- spring-webmvc:实现了Spring MVC的Web应用
- spring-websocket:主要是与Web前端的全双工通讯协议。
- spring-webflux:是一个新的非阻塞式Reactive Web框架,可以用来建立异步、非阻塞、事件驱动的服务,并且扩展性非常好。
该图是Spring 5的包结构,可以从中清楚看出Spring各个模块之间的依赖关系,所以在学习Spring的源码时,可以从Spring-core入手,其次是Spring-beans和spring-aop,随后是spring-context,再其次是spring-tx和spring-orm。因为spring-core依赖了commons-logging,而其他模块都依赖了spring-core,所以整个spring框架都依赖了commons-logging。
最后欢迎大家访问我的个人网站:1024s
Spring框架—体系结构相关推荐
- Spring 框架教程
Spring 框架教程 Spring Framework是最流行的Java EE框架之一.本文面向希望学习Spring框架体系结构的Java开发人员,它的核心组件以及属于Spring框架伞的各种项目. ...
- 超详细的Spring框架讲解,就这一篇!足矣
spring框架的学习笔记,以及演示代码. Spring框架概述 1.什么是Spring 2.Spring框架的优点 3.Spring框架体系结构 Spring框架--控制反转(IOC) 1.IOC介 ...
- spring核心框架体系结构(jar包依赖)
很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下 ...
- java框架之Spring 核心框架体系结构
很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下 ...
- java体系技术框架_java框架之Spring 核心框架体系结构
很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下 ...
- java 框架架构图_java框架之Spring 核心框架体系结构
很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下 ...
- Spring框架介绍及使用(转载)
原文链接 Spring框架-控制反转(IOC) 1 Spring框架概述 1.1 什么是Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由R ...
- 深入浅出,Spring 框架和 Spring Boot 的故事
Spring 框架可以说是 Java 开发人员使用的最流行的应用程序开发框架之一.它目前由大量提供一系列服务的模块组成.包括模块容器,为构建横切关注点提供支持的面向切面编程(AOP),安全框架,数据存 ...
- Spring框架Runtime介绍(导包)
一.Spring框架Runtime介绍,如图 1.1 Test: Spring提供测试功能 1.2 Core Container:Spring核心容器,Spring启动的基本条件, 1.2.1 Bea ...
最新文章
- golang copy函数
- php pdo bind,PHPPDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别_php技巧
- OpenCV cv::reduce用法的实例(附完整代码)
- go语言IP转换uint32,uint32转换IP
- 朱啸虎:几百亿资金今年注入小程序,你能抓住机会吗?
- 输入框中提示信息(html5)
- 2013中国电商盘点回顾
- WDM驱动开发 电源管理
- 使用FFMPEG5.0和SDL2.0编写视频简单播放器
- 怎么查看电脑连接的wifi密码?2种方法分享给大家!
- SBB:替代固氮酶对非共生固氮可能的贡献
- 执法智能眼镜 android,警用AR智能眼镜解决方案
- 采集页面之后css布局混乱之rem适配布局
- 第6章 冷眼看“学而无用”——《逆袭大学》连载
- 7个银行的软件测试项目实战,别再说简历项目不知道怎么写了
- 关于射线检测与碰撞检测
- WebService(腾讯QQ在线状态 WEB 服务)
- Ubuntu20.04 OpenSlide 读图Bug 解决
- 求职英语_面试英文须知
- 云队友丨拼多多的两个世界