1 升級依賴包
1.1 Maven 項目
1.1.1 更新 spring 依賴版本
打開 pom.xml,把所有 spring3.x 的版本號更新為 spring4.x。建議使用屬性配置,形如:
<properties>
<spring.version>4.3.16.RELEASE</spring.version> </properties>
這樣就僅需一處升級即可,引用方式如下:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> ...
1.1.2 升級 quartz
quartz 1.x 升級為 quartz 2.x:
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.0</version> </dependency>
quartz 配置文件中的 org.springframework.scheduling.quartz.CronTriggerBean
改為 org.springframework.scheduling.quartz.CronTriggerFactoryBean
1.1.3 升級 jackson
jackson 版本升級為 2.9.4:
<jackson.version>2.9.4</jackson.version>
涉及以下 5 個相關包:
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-jaxb-annotations</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <version>${jackson.version}</version> </dependency>
1.2 非 Maven 項目
非 Maven 的項目,要更新為 Spring4.x,過程比較痛苦,因為需要手動把相應的 JAR 包替換掉。
下面貼出可能涉及到、需要被替換掉的 JAR 包:



2 替換 spring jdbc 的 queryForInt 方法
queryForInt 方法已被棄用,請改為 queryForObject 方法:
queryForObject(String sql, Map<String, ?> paramMap, Class<T> requiredType)
調用示例:
int count=namedParameterJdbcTemplate.queryForObject(sql, params, Integer.class);
3 SpringMVC 返回 JSON 格式
原來在 Spring3 中默認會返回 JSON 格式,然而在 Spring4 中可能會默認返回 XML 格式:

如果這里的響應消息格式變為 application/xml;charset=UTF-8,那么可以在 Controller 中的 @RequestMapping
中加入 produces = "application/json"
,明確指定返回 JSON 格式。
示例:
@RequestMapping(value = "/login", method = RequestMethod.POST, produces = "application/json")
如果涉及的 Controller 較多(比如項目中存在大量的接口),那么可以修改 Spring 框架的源代碼——org.springframework.http.MediaType:
public static void sortBySpecificityAndQuality(List<MediaType> mediaTypes) { Assert.notNull(mediaTypes, "'mediaTypes' must not be null"); if (mediaTypes.size() > 1) { Collections.sort(mediaTypes, new CompoundComparator<MediaType>( MediaType.SPECIFICITY_COMPARATOR, MediaType.QUALITY_VALUE_COMPARATOR)); mediaTypes.set(0, MediaType.APPLICATION_JSON);//把 JSON 類型最為最優先的返回對象類型 } }
這樣所有的 @ResponseBody
的返回對象類型就都是 JSON 格式的對象啦O(∩_∩)O哈哈~
4 更新 XML 配置文件中的 xsd 版本號
把格式為 http://www.springframework.org/schema/xxx/spring-xxx-3.0.xsd
更改為 http://www.springframework.org/schema/xxx/spring-xxx-4.0.xsd
,如果有的話。
作者:deniro
鏈接:https://www.jianshu.com/p/e52a7476ae95
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。