Spring Framework
2024-05-17 14:43:19 0 举报
AI智能生成
Spring Framework知识点
作者其他创作
大纲/内容
Spring Framework主版本发布时间
Spring Framework各版本内容
Spring Framework 包含的模块
Spring 从3.0 版本开始把一个项目拆分成多个项目。到目前的Spring Framework 6版本,共计分为20个子模块
注:详细见https://pdai.tech/md/spring/spring-x-framework-introduce.html
注:详细见https://pdai.tech/md/spring/spring-x-framework-introduce.html
Test:对应spring-test.jar. Spring提供的测试工具, 可以整合JUnit测试或TestNG, 简化测试环节.
Core Container:Spring的核心组件, 包含了Spring框架最基本的支撑.
Beans, 对应spring-beans.jar. Spring进行对象管理时依赖的jar包.
注:提供了框架的基础部分,包括控制反转和依赖注入
注:提供了框架的基础部分,包括控制反转和依赖注入
Core, 对应spring-core.jar, Spring核心jar包,很多基础核心类都在这个包中。
注:封装了 Spring 框架的底层部分,包括资源访问、类型转换及一些常用工具类
注:封装了 Spring 框架的底层部分,包括资源访问、类型转换及一些常用工具类
Context, 对应spring-context.jar, Spring容器上下文对象.除了包含容器类型,很多第三方支持的内容都在这个模块中。
注:建立在 Core 和 Beans 模块的基础之上,集成 Beans 模块功能并添加资源绑定、数据验证、国际化、Java EE 支持、容器生命周期、事件传播等。ApplicationContext 接口是上下文模块的焦点。
注:建立在 Core 和 Beans 模块的基础之上,集成 Beans 模块功能并添加资源绑定、数据验证、国际化、Java EE 支持、容器生命周期、事件传播等。ApplicationContext 接口是上下文模块的焦点。
Expression, 对应spring-expression.jar, Spring表达式语言.可以通过表达式快速获取容器内容。
注:提供了强大的表达式语言支持,支持访问和修改属性值,方法调用,支持访问及修改数组、容器和索引器,命名变量,支持算数和逻辑运算,支持从 Spring 容器获取 Bean,它也支持列表投影、选择和一般的列表聚合等。
注:提供了强大的表达式语言支持,支持访问和修改属性值,方法调用,支持访问及修改数组、容器和索引器,命名变量,支持算数和逻辑运算,支持从 Spring 容器获取 Bean,它也支持列表投影、选择和一般的列表聚合等。
JCL,对应spring-jcl.jar。Spring日志,从spring老版本要求使用commons-logging.jar,从spring 5.x开始,自己对commons-logging做了封装。
注:5.x新增
注:5.x新增
AOP:面向切面编程, 对应spring-aop.jar.
Aspects:AspectJ的具体实现,面向切面编程的另一种实现。对应spring-aspects.jar
Instrumentation:服务器代理接口的具体实现。对应spring-instrument.jar
Messaging:集成messaging api和消息协议提供支持。对应spring-messaging.jar
Data Access/Integration:Spring对数据访问层的封装
JDBC: 对应spring-jdbc.jar. Spring对jdbc的封装, 当需要使用spring连接数据库时使用. spring-jdbc.jar需要依赖spring-tx.jar.
Transactions: 对应spring-tx.jar. 事务管理。
ORM:对应spring-orm.jar. spring整合第三方orm框架需要使用的jar包, 例如Hibernate框架.
OXM:对应spring-oxm.jar。spring对XML序列化实现,本质是对Marshalling XML的支持。
R2DBC:对应spring-r2dbc.jar。对数据库响应式编程的支持。
JMS:对应spring-jms.jar。Spring 提供对JMS的框架。
Web:Spring对javax下的接口或类做的扩展功能.
web:对应spring-web.jar, Spring框架在Java Web项目使用时必须的包。
webmvc:对应spring-webmvc.jar, 实际上就是SpringMVC框架.
webflux,对应spring-webflux.jar,和Spring MVC类似,但是是目前比较流行的响应式编程。
注:5.x新增
注:5.x新增
websocket,对应spring-websocket.jar。spring对websocket的支持。
Spring的优势及特征
特点
IOC(控制反转)或DI(依赖注入):明确定义组件的接口,独立开发各个组件,然后根据组件的依赖关系组装运行;即将创建及管理对象的权利交给Spring容器。Spring是一个轻型容器(light-weight Container),其核心是Bean工厂(Bean Factory),用以构造我们所需要的M(Model)。能够让相互协作的软件组件保持松散耦合。降低了业务对象替换的复杂性,提高了组件之间的解耦。
AOP(面向切面编程):通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。即系统级的服务从代码中解耦出来。例如:将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来。允许你把遍布应用各处的功能分离出来形成可重用组件。
优势
- 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。
面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。
MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。
低侵入式设计,代码污染极低,独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺。
集成能力强:集成多种优秀的开源框架。(Hibernate、Struts、Hessian等)。
异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常。
容器:Spring 包含并管理应用中对象的生命周期和配置。
轻量:Spring 是轻量的,基本的版本大约2MB。
为什么使用它?聚焦于优势说明
方便解耦,简化开发。
Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护,交给Spring管理。
Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护,交给Spring管理。
AOP编程的支持
Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能。
Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能。
声明式事务的支持
只需要通过配置就可以完成对事务的管理,而无须手动编程。
只需要通过配置就可以完成对事务的管理,而无须手动编程。
方便程序的测试
Spring对Junit4支持,可以通过注解方便的测试Spring程序。
Spring对Junit4支持,可以通过注解方便的测试Spring程序。
方便集成各种优秀的框架
Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts2、Hibernate、MyBatis、Quartz等)的直接支持。
Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts2、Hibernate、MyBatis、Quartz等)的直接支持。
降低JavaEE API的使用难度
Spring对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低。
Spring对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低。
Spring Framework 代码库地址
https://github.com/spring-projects/spring-framework/tags
https://repo.spring.io/libs-release-local/org/springframework/spring/
https://repo.spring.io/libs-release-local/org/springframework/spring/
springboot与springframework的关系
springboot 2.x对应springframework 5.x版本
springboot 2.x对应springframework 6.x版本
详见:https://blog.csdn.net/qq_23858785/article/details/129172440
注:springboot包地址 https://mvnrepository.com/artifact/org.springframework.boot/spring-boot
springboot 2.x对应springframework 6.x版本
详见:https://blog.csdn.net/qq_23858785/article/details/129172440
注:springboot包地址 https://mvnrepository.com/artifact/org.springframework.boot/spring-boot
教程
官网:https://spring.io/projects/spring-framework
0 条评论
下一页