使用Gson替换Jackson作为SpringBoot的json序列化库
之前一直用,Fastjson,但是最近它又㕛叒叕出现了漏洞。于是想起了Gson,可以作为它的替代。
Gson
Github
在SpringBoot 中替换Jackson
添加Gson依赖 & 排除默认的Jackson依赖
<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.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
修改 @SpringApplication,不加载Jackson的自动配置
@SpringBootApplication(exclude = {JacksonAutoConfiguration.class})
添加配置
# 设置json的首选序列化框架为 gson
spring.http.converters.preferred-json-mapper=gson
# 针对Gson序列化相关的配置
spring.gson.date-format=yyyy-MM-dd HH-mm-ss
更多针对于Gson的配置可以查看文档。或者阅读配置类 GsonProperties 的源码。
大功告成
Spring boot检测到存在 Gson.class
并使用 GsonAutoConfiguration 来自动配置Gson实例。可以在任意组件中,通过 @Autowired 获取到 Gson实例对象
@Autowired
Gson gson;