webmvcconfigurer 对jackson的影响
时间: 2024-04-27 14:20:22 浏览: 12
WebMvcConfigurer 是一个接口,用于配置 Spring MVC 的相关设置。其中可以通过重写 configureMessageConverters() 方法,来自定义消息转换器。
消息转换器是用于将请求和响应的数据转换成特定格式的工具。Jackson 是一个流行的 Java 序列化库,用于将 Java 对象转换成 JSON 或 XML 格式的数据。
通过 WebMvcConfigurer 的 configureMessageConverters() 方法,可以添加或修改默认的消息转换器。对于 Jackson 来说,可以通过添加 MappingJackson2HttpMessageConverter 类型的消息转换器,来自定义 Jackson 的配置。
例如,可以通过以下方式配置 Jackson 的一些属性:
```java
相关问题
怎么替换默认的Jackson库
如果需要替换SpringBoot默认的Jackson库,可以按照以下步骤进行操作:
1. 添加新的JSON库依赖,例如FastJson:
```xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
```
2. 在SpringBoot的配置文件中配置使用FastJson库:
```properties
spring.http.converters.preferred-json-mapper=fastjson
```
或者使用Java配置的方式:
```java
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
converters.add(converter);
}
}
```
上述配置将FastJson库设置为首选的JSON库,这样在使用@RequestBody注解时,就会使用FastJson库来完成JSON数据的转换。
解决SpringBoot返回Java8 时间JSON数据的格式化问题,使用实现WebMvcConfigurer接口的方式解决
在SpringBoot中,我们可以使用@JsonFormat注解来格式化Java8时间类型的JSON输出。但是,如果我们需要对所有Java8时间类型统一进行格式化,可以使用实现WebMvcConfigurer接口的方式来解决。
具体步骤如下:
1. 创建一个类,实现WebMvcConfigurer接口,并重写addFormatters方法,在其中注册日期时间格式化器。
```java
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addFormatters(FormatterRegistry registry) {
DateTimeFormatterRegistrar registrar = new DateTimeFormatterRegistrar();
registrar.setDateFormatter(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
registrar.setTimeFormatter(DateTimeFormatter.ofPattern("HH:mm:ss"));
registrar.setDateTimeFormatter(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
registrar.registerFormatters(registry);
}
}
```
2. 在SpringBoot的配置文件中,禁用掉Jackson对Java8时间类型默认的序列化方式,让它使用我们自己定义的格式化器。
```yaml
spring:
jackson:
serialization:
WRITE_DATES_AS_TIMESTAMPS: false
```
这样,我们就实现了对所有Java8时间类型的统一格式化。在Controller中返回Java8时间类型的JSON数据时,就会按照我们定义的格式输出。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)