升级spring&集成Redis 一 : spring3升级spring4
1 背景
由于项目中使用的spring版本比较低,无法很好支持某些功能的使用,于是决定将spring3升级为spring4
2 升级spring版本
修改前:<spring.version>3.1.1.RELEASE</spring.version>
修改后 :<spring.version>4.3.12.RELEASE</spring.version>
3 升级 jackson
<jackson.version>2.9.3</jackson.version> <!-- jackson start--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>${jackson.version}</version> </dependency> <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> <!-- jackson end-->
4 修改其他相关依赖冲突的配置
比如: [ERROR]2020-03-14 16:28:08-[org.springframework.web.context.ContextLoader.initWebApplicationContext()]: Context initialization failed org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [com.test.common.mvc.annotation.JSONHttpMessageConverter] for bean with name 'jsonHttpMessageConverter' defined in ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError: org/springframework/http/converter/json/MappingJacksonHttpMessageConverter at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1388) 找到引用MappingJacksonHttpMessageConverter的地方;将原来版本中的MappingJacksonHttpMessageConverter 使用新版MappingJackson2HttpMessageConverter替换
5 请求响应格式变化
原来在 Spring3 中默认会返回 JSON 格式,然而在 Spring4 中可能会默认返回 XML 格式
可以在 Controller 中的 @RequestMapping 中加入 produces = "application/json",明确指定返回 JSON 格式。示例:
@RequestMapping(value = "/login", method = RequestMethod.POST, produces = "application/json")