springboot全局配置Jackson未生效

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);
    }
}

你可能感兴趣的