WebConverterConfigurer.java 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package com.nosum.common.config;
  2. import com.nosum.system.interceptor.AuthenticationInterceptor;
  3. import com.fasterxml.jackson.databind.ObjectMapper;
  4. import org.apache.commons.lang3.StringUtils;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.context.annotation.Bean;
  7. import org.springframework.context.annotation.Configuration;
  8. import org.springframework.context.annotation.Primary;
  9. import org.springframework.core.convert.converter.Converter;
  10. import org.springframework.format.FormatterRegistry;
  11. import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
  12. import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
  13. import java.sql.Timestamp;
  14. import java.time.LocalDate;
  15. import java.time.LocalDateTime;
  16. /**
  17. * @Description: 将Json序列化工具设置为FastJson
  18. * @Author:sumbytes
  19. * @Date:2019/01/15 08:00
  20. */
  21. @Configuration
  22. public class WebConverterConfigurer implements WebMvcConfigurer {
  23. @Autowired
  24. private AuthenticationInterceptor authenticationInterceptor;
  25. @Bean
  26. @Primary
  27. public static ObjectMapper jacksonObjectMapper() {
  28. return JacksonConfig.jacksonObjectMapper();
  29. }
  30. @Override
  31. public void addFormatters(FormatterRegistry registry) {
  32. // 注册时间反序列化转换器,时间戳字符串转换为LocalDateTime类型
  33. registry.addConverter((Converter<String, LocalDate>) source -> StringUtils.isBlank(source) ? null : new Timestamp(Long.parseLong(source)).toLocalDateTime().toLocalDate());
  34. // 注册时间反序列化转换器,时间戳字符串转换为LocalDateTime类型
  35. registry.addConverter((Converter<String, LocalDateTime>) source -> StringUtils.isBlank(source) ? null : new Timestamp(Long.parseLong(source)).toLocalDateTime());
  36. }
  37. @Override
  38. public void addInterceptors(InterceptorRegistry registry) {
  39. // 可添加多个
  40. registry.addInterceptor(authenticationInterceptor).addPathPatterns("/**");
  41. }
  42. }