FastJsonHttpMessageConverter
一、简介
项目地址
为什么要升级? 官方给出的对比
fastjson2可以说是一次重构,代码结构不同。fastjson2更快,更安全(没信心说)
二、如何升级?
2.1 替换maven和包名
如果代码中没有过多的直接使用FastJson的类,直接替换maven和.java文件中的包名即可
建议大家不要直接使用Json类,而是自己封装一个json类,这样当出现问题时,也好改,避免每次都去修改大量的文件
2.2 修改SpringBoot MessageConverters
spring boot默认的消息转换中,json的序列化和反序列化是jackson
如果你在fastjson 1配置了消息转换,升级到fastjson2,你需要引入fastjson2-extension,并且FastJsonHttpMessageConverter的包名为
com.alibaba.fastjson2.support.spring.http.converter.FastJsonHttpMessageConverter
完整的配置文件(博主当前是spring boot 2.6.7)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-json</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>${fastjson2.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2-extension</artifactId>
<version>${fastjson2.version}</version>
</dependency>
@Configuration
public class JsonMessageConverterConfigurer implements WebMvcConfigurer {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
List<MediaType> fastMediaTypes = new ArrayList<>();
fastMediaTypes.add(MediaType.APPLICATION_JSON);
fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
converter.setSupportedMediaTypes(fastMediaTypes);
converters.add(0,converter);
}
}
往期好文推荐: 如何在家搭建服务器?如何在公网访问家庭内的设备?如何满带宽 + 无需公网服务器地进行内net川透? 博主的答案:《NameSilo的DDNS动态域名解析脚本》
|