Spring 各版本发布时间与区别

在这里插入图片描述

版本版本特性
Spring Framework 1.01. 所有代码都在一个项目中
2. 支持核心功能IoC、AOP
3. 内置支持Hibernate、iBatis等第三方框架
4. 对第三方技术简单封装。如:JDBC、Mail、事务等
5. 只支持XML配置方式。
6.主要通过 XML 配置文件来管理对象和依赖关系,配置工作较为繁琐。
Spring Framework 2.01. 最重要的变化:支持注解配置
2. 增加对ehcache支持
3. 对JMS(Java消息服务)、JMX(Java管理扩展)等支持
4.引入了更多的企业级特性,如声明式事务管理。
5.支持与第三方框架(如 Struts、Hibernate)的更好集成。
6.提供了更多的数据访问支持,如 JdbcTemplate 和 HibernateTemplate。
Spring Framework 3.01. 引入了基于 Java 的配置(@Configuration),作为 XML 配置的替代。
2. 由原来的一个项目拆分成多个子模块。
3. 添加单元测试子模块
4. 大量扩展了注解驱动的开发,使得代码更加简洁。
5. 支持JSR-303/JSR-349 Bean Validation 规范,用于验证模型对象。
6. 强化了对 RESTful Web 服务的支持,引入了 @RestController 和 ResponseEntity。
Spring Framework 4.01. 全面支持Java 8,如 Lambda 表达式和日期/时间 API。
2. 添加二级子项目 Spring MVC ,基于Servlet 3.0开发
3. 提供WebSocket支持。
4. 引入@RestController等注解,增强对Restful的支持。
5. 专注于提升性能和减少内存占用。
6. 更好地适应了多核处理器和高并发环境。
Spring Framework 5.01. 最低环境要求Java 8
2. 日志整合。把原来commons-logging 封装后变为spring-jcl模块
3. 跨域更改。把原来的JSONP支持变更为修改响应头的@CrossOrigin注解。
4. 响应式编程。添加二级子项目WebFlux ,支持Reactor和其他反应式流库。
5. 使用Kotlin(科特林)进行函数式编程
6. 对Java 9及更高版本的支持。
7. 强化了对微服务和云原生应用的支持。
8. 提升了对WebSocket和HTTP/2协议的支持。
Spring Framework 6.01. 最低环境要求Java 17
2. 加强对响应式编程支持。添加子模块spring-r2dbc
3. 取消子模块spring-orm-hibernate
4,只保留spring-orm,只支持Hibernate5。

参考资料

【精选】Spring框架介绍及Spirng各个版本的特性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/13040.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

时间序列预测:探索性数据分析和特征工程的实用指南

时间序列分析是数据科学和机器学习领域最广泛的主题之一:无论是预测金融事件、能源消耗、产品销售还是股票市场趋势,这一领域一直是企业非常感兴趣的领域。 随着机器学习模型的不断进步,使除了传统的统计预测方法(如回归模型、ARIMA模型、指数平滑)外&a…

Benedict Evans:Ways to think about AGI思考 AGI 的方法:

​Benedict Evans本文发布于2024 年 5 月 4 日 How do we think about a fundamentally unknown and unknowable risk, when the experts agree only that they have no idea? 当专家们一致认为他们一无所知时,我们如何看待根本上未知和不可知的风险? T…

程序验证之Dafny--证明霍尔逻辑的半自动化利器

一、What is Dafny?【来自官网介绍 Dafny 】 1)介绍 Dafny 是一种支持验证的编程语言,配备了一个静态程序验证器。 通过将复杂的自动推理与熟悉的编程习语和工具相结合,使开发者能够编写可证明正确的代码(相对于 {P}S{Q} 这种…

表白成功率百分百的向女朋友表白网页源代码,向女友表白HTML源代码

表白成功率百分百的向女朋友表白网页源代码&#xff0c;向女友表白HTML源代码 效果&#xff1a; 完整代码下载地址&#xff1a;向女友表白HTML源代码 <!DOCTYPE html> <!--STATUS OK--> <html><head><meta http-equiv"Content-Type" c…

性能优化:几方面考虑

我们可以继续再考虑下关于性能优化&#xff0c;我们还能从哪些方面着手呢&#xff1f; 1. 代码层面&#xff1a; 使用更高效的数据结构和算法。使用缓存避免多次数据库交互减少不必要的计算和内存分配。利用并行和异步编程提高性能。使用性能分析工具定位和优化瓶颈。 2. We…

玩转Matlab-Simscape(初级)-01-从一个简单模型开始学习之旅

** 玩转Matlab-Simscape&#xff08;初级&#xff09;- 01 - 从一个简单模型开始学习之旅 ** 目录 玩转Matlab-Simscape&#xff08;初级&#xff09;- 01 - 从一个简单模型开始学习之旅 前言一、从模板开始建模二、建模一个简单的连杆2.1 建模2.2 生成子系统 总结 前言 在产…

代码随想录算法训练营Day40 | 62.不同路径 63. 不同路径 II

代码随想录算法训练营Day40 | 62.不同路径 63. 不同路径 II LeetCode 62.不同路径 题目链接&#xff1a;LeetCode 62.不同路径 思路&#xff1a; 二维数组dp&#xff0c;简单 class Solution { public:int uniquePaths(int m, int n) {if( m1 || n1 ) return 1;vector<v…

2024年成都高新区支持企业申报国家、省级、市级大数据产业发展、新一代信息技术与制造业融合发展、工业互联网推广应用等试点示范项目申报对象条件和奖补

一、申报对象 &#xff08;一&#xff09;本政策支持注册地址、税收关系在成都高新区&#xff0c;具有独立法人资格的企业。 &#xff08;二&#xff09;管理规范&#xff0c;无不良信用记录&#xff0c;自觉遵守安全生产、环境保护等方面的法律法规&#xff0c;近三年未发生…

Git服务器(中心仓库(裸仓库))搭建

目录 前言&#xff1a;Git三大重要的区域 前言&#xff1a;SVN与Git的最主要的区别 搭建Git服务器 git init --bare初始化中心仓库(裸仓库) 前言&#xff1a;Git三大重要的区域 工作区&#xff1a;简单理解就是需要进行版本控制的某个文件夹(假设为test)这个文件夹有一些特…

元类结合__new__

__new__:用来生成骨架 __init__:骨架添加血肉 【一】类中的__new__ class MyClass(object):def __init__(self,name,age):print(f"给当前MyClass类的对象初始化属性的时候会触发__init__")self.name nameself.age age ​def __call__(self,*args,**kwargs):pri…

isinstance和issubclass的使用

isinstance() : 判断当前对象是否是某一个类的类型 issubclass() : 校验一个类是否属于另一个类的子类 class Person(object):... ​ ​ class Student:... ​ ​ stu Student() ​ person Person() ​ # 【一】isinstance() : 判断当前对象是否是某一个类的类型 print(is…

23.HashMap的put方法流程

一、put方法的流程图 二、put方法的执行步骤 首先&#xff0c;根据key值计算哈希值。然后判断table数组是否为空或者数组长度是否为0&#xff0c;是的话则要扩容&#xff0c;resize&#xff08;&#xff09;。接着&#xff0c;根据哈希值计算数组下标。如果这个下标位置为空&a…

第 397 场 LeetCode 周赛题解

A 两个字符串的排列差 模拟&#xff1a;遍历 s s s 记录各字符出现的位置&#xff0c;然后遍历 t t t 计算排列差 class Solution {public:int findPermutationDifference(string s, string t) {int n s.size();vector<int> loc(26);for (int i 0; i < n; i)loc[s…

合并K个升序链表

题目 解法一 优先级队列 思想 将每个链表中的一个节点存放到优先级队列中&#xff0c;本题采用小根堆&#xff0c;将小根堆中的根节点取出&#xff0c;插入到最终的链表中&#xff0c;并且将该节点在原链表中的下一个节点插入小根堆中&#xff08;需要向下调整&#xff09;&a…

【019】基于SSM+JSP实现的进销存管理系统

项目介绍 进销存管理系统是对企业生产经营中物料流、资金流进行条码全程跟踪管理&#xff0c;从接获订单合同开始&#xff0c;进入物料采购、入库、领用到产品完工入库、交货、回收货款、支付原材料款等&#xff0c;每一步都为您提供详尽准确的数据。有效辅助企业解决业务管理…

2024OD机试卷-找座位 (java\python\c++)

题目:找座位 题目描述 在一个大型体育场内举办了一场大型活动,由于疫情防控的需要,要求每位观众的必须间隔至少一个空位才允许落座。 现在给出一排观众座位 分布图 ,座位中存在已落座的观众,请计算出,在不移动现有观众座位的情况下,最多还能坐下多少名观众。 输入描述…

【机器学习】:基于决策树与随机森林对数据分类

机器学习实验报告&#xff1a;决策树与随机森林数据分类 实验背景与目的 在机器学习领域&#xff0c;决策树和随机森林是两种常用的分类算法。决策树以其直观的树形结构和易于理解的特点被广泛应用于分类问题。随机森林则是一种集成学习算法&#xff0c;通过构建多个决策树并…

kafka用java收发消息

用java客户端代码来对kafka收发消息 具体代码如下 package com.cool.interesting.kafka;import org.apache.kafka.clients.consumer.ConsumerConfig; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecords; i…

Microsoft 发布了 5 月份产品安全修复报告。

我们提请大家注意我们归类为趋势*的两个漏洞&#xff1a; CVE-2024-30051 和 CVE-2024-30040。 1. Windows 内核库 DWM 核心库中的 CVE-2024-30051漏洞 该漏洞与负责显示桌面窗口&#xff08;DWM&#xff09;的内核库中的权限升级有关。成功利用漏洞可讓攻擊者在沒有使用者互…

Python模块之Numpy(五)-- 排序

Sort排序 NumPy 的排序方式主要可以概括为直接排序和间接排序两种&#xff0c;直接排序是对数值直接进行排序&#xff0c;间接排序是指根据一个或者多个键对数据集进行排序&#xff0c;在 NumPy 中&#xff0c;直接排序经常使用 sort 函数&#xff0c;间接排序经常使用 argsort…