springboot全局配置Jackson未生效
1.application.yml配置项
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
default-property-inclusion: non_null
2.原因分析
引用SpringMVC官网说明
Finally, if you opt out of the Spring Boot default MVC configuration by providing your own @EnableWebMvc configuration,you can take control completely and do everything manually by using getMessageConverters from WebMvcConfigurationSupport.
3.解决方式
3.1原因:
项目使用mvc拦截器,通过org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport配置,导致Jackson配置失效
/**
* WebInterceptorConfig mvc请求拦截器.
*
* @author cs
* @version 1.0
* @date 2019-10-02 18:22
* @description
*/
@Configuration
public class WebInterceptorConfig extends WebMvcConfigurationSupport {
// 自己实现的拦截器
@Autowired
private UserAuthInterceptor userAuthInterceptor;
// 添加权限拦截的管理器
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(userAuthInterceptor);
}
}
3.2解决方式
采用org.springframework.web.servlet.config.annotation.WebMvcConfigurer配置,Jackson配置成功
/**
* WebInterceptorConfig mvc请求拦截器.
*
* @author cs
* @version 1.0
* @date 2019-10-02 18:22
* @description
*/
@Configuration
public class WebInterceptorConfig implements WebMvcConfigurer {
// 自己实现的拦截器
@Autowired
private UserAuthInterceptor userAuthInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 添加权限拦截的管理器
InterceptorRegistration registration1 = registry.addInterceptor(userAuthInterceptor);
}
}