2

为什么升级 spring 4

升级 Spring4 的原因是:想要将老项目从jdk1.6升级之1.8,而Spring 4 以前的版本不兼容 JDK8。

Spring 4 相比 Spring 3,引入许多新特性,这里列举几条较为重要的:

  • 支持 JDK8 (这个是最主要的)。
  • Groovy Bean Definition DSL 风格配置。
  • 支持 WebSocket、SockJS、STOMP 消息
  • 移除 Deprecated 包和方法
  • 一些功能加强,如:核心容器、Web、Test 等等,不一一列举。

升级步骤

  • 清理maven依赖,解决红线冲突,spring相关依赖包显示定义
  • 直接修改spring版本
  • spring mvc 中如果返回结果为 json 需要依赖 jackson 的jar包,但是他升级到了2, 以前是 codehaus.jackson,现在换成了 fasterxml.jackson
<dependency>      
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.7.0</version>
</dependency>
<dependency>                
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.7.0</version>
</dependency>
  • 修改spring xml文件的xsd,去掉版本号,如下面示例中的3.1
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
  • 单测事务注解问题,继承的父类若已经标有注解TransactionalTestExecutionListener,则子类不需要重复定义,否则会导致错误
java.lang.IllegalStateException: Cannot start a new transaction without ending the existing transaction.
  • web 容器需要支持servlet api 2.5版本,tomcat至少6以上

图片

参考文档

升级 spring 4:
https://dunwu.github.io/blog/...
单测事务问题:
https://my.oschina.net/u/2430...
tomcat servlet 版本问题:
http://tomcat.apache.org/whic...

skyarthur
1.6k 声望1.3k 粉丝

技术支持业务,技术增强业务,技术驱动业务