spring 3.x 升级 spring 4 实践

为何升级 spring 4

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

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

  • 支持 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...