spring 4 升级踩雷指南 前言
最近,一直在为公司老项目做核心库升级工作。本来只是想升级一下 JDK8 ,却因为兼容性问题而不得不升级一些其他的库,而其他库本身依赖的一些库可能也要同步升级。这是一系列连锁问题,你很难一一识别,往往只有在编译时、运行时才能发现问题。
总之,这是个费劲的活啊。
本文小结一下升级 Spring4 的连锁问题。
为什么升级 spring4升级 Spring4 的原因是:Spring 4 以前的版本不兼容 JDK8。当你的项目同时使用 Spring3 和 JDK8,如果代码中有使用 JDK8 字节码或 Lambada 表达式,那么会出问题。
也许你会问,为什么不使用最新的 Spring 5 呢?因为作为企业软件,一般更倾向使用稳定的版本(bug 少),而不是最新的版本,尤其是一些核心库。
更多细节可以参考:
https://spring.io/blog/2013/05/21/spring-framework-4-0-m1-3-2-3-available/
spring 4 重要新特性Spring 4 相比 Spring 3,引入许多新特性,这里列举几条较为重要的:
支持 JDK8 (这个是最主要的)。
Groovy Bean Definition DSL 风格配置。
支持 WebSocket、SockJS、STOMP 消息
移除 Deprecated 包和方法
一些功能加强,如:核心容器、Web、Test 等等,不一一列举。
更多 Spring 4 新特性可以参考:
升级 spring 4 步骤了解了前面内容,我们知道了升级 Spring 4 带来的好处。现在开始真刀真枪的升级了。
不要以为升级一下 Spring 4,仅仅是改一下版本号,那么简单,细节处多着呢。
下面,结合我在公司项目升级 Spring4 时遇到的一系列坑,希望能帮助各位少走弯路。
注
下文内容基于假设你的项目是用 maven 管理这一前提。如果不满足这一前提,那么这篇文章对你没什么太大帮助。
修改 spring 版本第一步,当然是修改 pom.xml 中的 spring 版本。
3.x.x.RELEASE > 4.x.x.RELEASE
实例:升级 spring-core
其它 spring 库的升级也如此:
<properties> <spring.version>4.3.13.RELEASE</spring.version> </properties> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency>