下面是详细讲解“东八区SpringBoot如何配置序列化”的攻略。
1、序列化概念简述
Java中的序列化是指将一个Java对象转化为字节流,这样可以将对象存储在磁盘上或通过网络传输。而反序列化则是将字节流转化为对象。
在Spring Boot中,对象的序列化往往用于将对象作为响应返回给客户端或者使用Redis等缓存技术进行存储。
2、Spring Boot 序列化自动配置
Spring Boot提供了序列化的自动配置,可以根据依赖的情况自动地配置对象的序列化方式。
在使用Spring Boot 2.x版本时,默认的序列化实现为Jackson,而在使用Spring Boot 1.x版本时,默认的序列化实现为Jackson或Gson。Jackson是一个强大而灵活的序列化库,Gson则是Google开源的序列化库。
3、配置Jackson序列化
3.1、Jackson的依赖
若使用的Spring Boot版本为2.x,则需要添加下述依赖:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
3.2、自定义Jackson序列化方式
在Spring Boot中,可以通过自定义Jackson的ObjectMapper进行序列化的配置。在Spring Boot启动时,会装配一个默认的ObjectMapper,若需要定制化配置,则需要自定义一个ObjectMapper来替代默认配置。
示例1. 自定义Jackson的ObjectMapper进行日期格式化
把Java的Date类型按指定格式序列化为字符串输出。例如将Date类型按 yyyy-MM-dd HH:mm:ss 格式序列化输出。
@Configuration
public class JacksonConfig {
@Bean
public ObjectMapper objectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
objectMapper.setDateFormat(dateFormat);
return objectMapper;
}
}
示例2. 自定义Jackson的ObjectMapper进行属性配置
@Configuration
public class JacksonConfig {
@Bean
public ObjectMapper objectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
return objectMapper;
}
}
4、配置Gson序列化
4.1、Gson的依赖
若使用的Spring Boot版本为1.x,则需要添加下述依赖:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
4.2、自定义Gson序列化方式
示例1. 自定义Gson的GsonBuilder进行日期格式化
将Java的日期类型按指定格式序列化为字符串输出。例如将Date类型按 yyyy-MM-dd HH:mm:ss 格式序列化输出。
@Configuration
public class GsonConfig {
@Bean
public Gson gson() {
Gson gson = new GsonBuilder()
.setDateFormat("yyyy-MM-dd HH:mm:ss")
.create();
return gson;
}
}
示例2. 自定义Gson的GsonBuilder进行属性配置
@Configuration
public class GsonConfig {
@Bean
public Gson gson() {
Gson gson = new GsonBuilder()
.serializeNulls()
.setFieldNamingStrategy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
.create();
return gson;
}
}
5、总结
通过自定义Jackson或Gson的ObjectMapper或GsonBuilder可以方便地实现序列化的配置。其中,Jackson序列化的自动配置是Spring Boot的默认实现。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:东八区springboot如何配置序列化 - Python技术站