Spring Framework于2004年首次发布,是顶级Java框架之一。 Spring 4已于2013年12月发布,它是支持Java 8的第一个框架版本。了解为什么应该考虑将应用程序升级到Spring 4。

注意:我最初将此博客文章写在公司博客http://blog.goyello.com上 。 您可以在这里找到原始文章: http : //blog.goyello.com/2015/11/30/5-reasons-to-upgrade-to-spring-4/ 。

#1使用Java 8加快开发速度

2014年发布的Java 8是自Java 1.5以来最大的更新。 毫无疑问,您应该考虑升级到Java 8,因为:

  • Java 8更快
  • Java 8具有Lambda表达式
  • Java 8具有Streams API
  • Java 8具有新的日期和时间API

在以下文章中了解更多信息: https : //dzone.com/articles/why-java-8-1并记住Java 7现在已经停产: https : //www.java.com/en/download/faq /java_7.xml

Spring 4是完全支持Java 8的框架的第一个版本,如果要在Java 8中使用Spring,则肯定需要升级。

使用Spring 4和Java 8可以轻松创建更紧凑,更简洁的代码。例如,Spring的许多现有接口和新接口都是可以在lambda表达式中使用的功能接口。 核心框架支持新的日期和时间API,但您也可以在Thymeleaf视图或Spring Data JPA中使用它。 另一个示例是框架中对java.util.Optional的支持。 例如,您可以使用@RequestParam @MatrixVariable@RequestHeader @MatrixVariable@MatrixVariable注入它。 Spring还为StreamCharsetCurrencyTimeZone提供了现成的转换器。

#2生产率提高

随后的每个Spring版本都附带了许多改进,可以简化开发。 现在,越来越多需要自定义解决方案的任务已成为框架的一部分。 例如,在Spring中,最终可以注入Java泛型类型。 Spring将自动将泛型视为@Qualifier一种形式。 @EventListener和通用事件的引入简化了Spring应用程序中的事件处理。 Spring不仅引入了对JCache(JSR-107)的支持,而且随着时间的推移改进了其自身的缓存抽象。 如果您碰巧使用JMS,则可能会在此有所改进,主要是在配置( @EnableJms )和注册端点( @JmsListener )方面。

测试基础架构中有许多更改,可以更快地创建集成测试。 新的TestTransaction API以编程方式管理事务,按类或按方法执行SQL脚本,使用JUnit规则而不是JUnit测试运行器执行测试只是更改的几个示例。

#3最新

Spring框架共存并与许多框架和第三方库集成。 依赖关系已更新,因此您可以使用最新的依赖关系。 Spring与JEE API(例如JMS 2.1,JPA 2.1,Bean Validation 1.1或已经提到的JCache)集成良好。 Spring还从Money和Currency API中javax.money了对javax.money包类型的绑定和转换的支持。 它与Gson(杰克逊的替代品)和Google Protocol Buffers数据协议集成在一起。

还值得一提的是,Spring支持WebSockets,SockJS和HTTP Streaming以及服务器发送事件之类的标准,该标准受框架支持。

#4不再有JAR地狱

引入Spring IO Platform项目对使用Maven或Gradle的Spring应用程序中依赖项的管理方式具有重大影响。

Spring IO平台提供了各种Spring项目及其依赖项的版本。 将上面显示的配置添加到构建脚本后,您就可以声明依赖项,而不必担心版本号。

由于升级依赖版本时出现的一些问题,开发人员不敢这样做。 有了平台,恐惧就消失了。 在许多情况下,升级平台支持的所有依赖项版本可能只需要更改平台版本。

#5快乐的开发人员

开发人员喜欢使用最新技术。 将框架升级到最新版本可为他们提供提高生产力,学习新知识和提高技能的机会。 这也可能是一种使他们保持积极性并防止他们考虑退出传统项目的方法。

资源资源

Spring 4和Java 8

  • http://www.baeldung.com/java-8-spring-4-and-spring-boot-adoption
  • https://spring.io/blog/2015/06/02/spring-4-and-java-8-adoption
  • https://dzone.com/guides/the-java-ecosystem-2015-edition

正在迁移

  • https://spring.io/blog/2014/01/30/migrating-from-spring-framework-3-2-to-4-0-1
  • https://github.com/spring-projects/spring-framework/wiki/Migrating-from-earlier-versions-of-the-spring-framework

Spring IO平台

  • http://docs.spring.io/platform/docs/current/reference/htmlsingle/#platform-documentation

翻译自: https://www.javacodegeeks.com/2015/12/5-reasons-consider-upgrading-applications-spring-4.html

您应该考虑将应用程序升级到Spring 4的5个理由相关推荐

  1. 探寻背后的机制化繁为简:网站程序升级不过是文件同步

    苹果落到地上而不是天上,这是重力的作用: 树叶从树枝上飘落的样子谁也无法预测,这是混沌过程: 热恋中的恋人总是难分难舍,这是荷尔蒙等激素作用于下丘脑的结果: ... ... 诸如这些"复杂& ...

  2. 程序升级触发阿里云自身安全机制导致的莫名问题

    最近对放在阿里云的程序作了升级,但在升级的时候却出现了一个莫名其妙的问题,导致整个应用无法使用.这是一个ecshop的程序,程序升级完以后出现莫名其妙的语法错误.然而程序本地测试并无问题. 报错异常 ...

  3. 前端程序升级linux方案,开源:AspNetCore 应用程序热更新升级工具(全网第一份公开的解决方案)...

    1:下载.开源.使用教程 使用教程: 解压AspNetCoreUpdater.rar,得到两个压缩包,分别对应用Window和Linux. A.使用教程:For Window IIS 1.解压AspN ...

  4. 将asp.net1.1的应用程序升级到asp.net2.0的一点心得

    将asp.net1.1的应用程序升级到asp.net2.0的一点心得 费了好一袋烟工夫把CommunityServer升级到了Asp.Net2.0平台,一点心得: vs2005可以很方便的帮我们把vs ...

  5. LabVIEW编程LabVIEW开发 旧程序升级维护

    LabVIEW编程LabVIEW开发 旧程序升级维护 前段时间遇到一个LabVIEW软件维护的项目.系统是RT测试,和上位机有通讯,用的都是NI的控制器和板卡,只是时间比较久了,软件是用LabVIEW ...

  6. c语言单片机自动浇花系统,LLAKG:Arduino 自动浇花系统(第3集:C语言程序升级与功能优化)...

    LLAKG:Arduino 自动浇花系统(第3集:C语言程序升级与功能优化) [复制链接] 第三集: C语言程序升级与功能改进 我叫张柏峦,今年9岁,我喜欢电子科学 第三集视频中,我们再深入的介绍一下 ...

  7. 网站升级改版服务器,网站程序升级改版 让网站无损失过渡

    当现有的网站遇到数据容量瓶颈,需要更换网站程序,如将自己编写的网站管理系统更换为开源的CMS;旧版ASP数据库不能支持大容量的数据,需要转换为SQL.更换带来的数据丢失和用户体验等麻烦就接连不断,特别 ...

  8. 基于IAP和USB技术的嵌入式系统应用程序升级

    对于内含IAP功能的嵌入式微控制器提出基于IAP和USB技术的系统应用程序升级的新方法.U盘被用作程序代码的存储设备,将微控制器的存储器Flash和SRAM进行有效的区间分配,经外部扩展接口USB,微 ...

  9. CC2652 on-chip OAD程序升级记录全过程

    1 前期准备 参考:设置 BLE OAD 环境 硬件环境 LAUNCHXL-CC26X2R1一块 LAUNCHXL-CC2652RSIP一块 硬件类型 硬件名称 角色 功能 开发板 LAUNCHXL- ...

最新文章

  1. php代码中使用换行及(\n或\r\n和br)的应用
  2. ensp查看历史配置命令_eNSP常用命令
  3. vue elementui el-select通过@Change触发事件
  4. 深入理解javascript原型和闭包(12)——简介【作用域】
  5. 每天一道LeetCode-----复制无向图
  6. Java异常处理教程(包含示例和最佳实践)
  7. Http Module 介绍[转]
  8. 19年计算机专硕学硕报名人数,2019年研招报考数据出炉!专硕的报考人数赶超学硕!...
  9. 工作没满一年,我跳槽了!【附面经】
  10. VBS操作 PDF时,常用快捷键(Adobe Acrobat Reader)
  11. Pandas——处理丢失的数据(含NaN的数据)
  12. vue学习笔记-6-属性绑定
  13. jdk帮助文档在哪_jdk帮助文档在哪里下载
  14. 2021年初级会计职称《初级会计实务》考试真题
  15. 买传奇域名空间要注意什么?
  16. 基于python高仿探迹源码
  17. 高翔视觉SLAM十四讲课本代码运行
  18. matlab与python区别_python和matlab的区别
  19. *转载*耶鲁大学校长给计算机学生的建议
  20. html星空炫彩粒子,炫彩粒子模拟器游戏

热门文章

  1. javafx之TableView的TaleCell
  2. java实现遍历树形菜单方法——Dao层
  3. 2020蓝桥杯省赛---java---B---2(寻找 2020)+测试txt
  4. 154. 寻找旋转排序数组中的最小值 II(有手就行)
  5. 第6步 项目包结构
  6. 可视化大屏设计尺寸_可视化大屏设计_酷炫不是最高效的大屏展示的唯一标准...
  7. 公式冒号是什么意思_三角学中,这么一堆公式其实就说了2个事而已
  8. 框架写mysql插入为空_学习springMVC框架配置遇到的问题-数据写入不进数据库时的处理办法...
  9. Java之Socket与HTTP区别
  10. wiremock 使用_使用WireMock进行更好的集成测试