LongToStringJsonConfig.java 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package com.alvin.config;
  2. import com.fasterxml.jackson.databind.ObjectMapper;
  3. import com.fasterxml.jackson.databind.module.SimpleModule;
  4. import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
  5. import org.springframework.context.annotation.Configuration;
  6. import org.springframework.http.converter.HttpMessageConverter;
  7. import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
  8. import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
  9. import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
  10. import java.util.List;
  11. /**
  12. * 我们把long类型数据传到前端时,会丢失精度,这里加一个配置类即可将long转换为string
  13. *
  14. * @author tianyunperfect
  15. * @date 2020/05/20
  16. */
  17. @Configuration
  18. public class LongToStringJsonConfig extends WebMvcConfigurationSupport {
  19. /**
  20. * 这个必须有,否则不能访问静态文件
  21. * @param configurer
  22. */
  23. @Override
  24. public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
  25. configurer.enable();
  26. }
  27. /**
  28. * 配置Long转string
  29. * @param converters
  30. */
  31. @Override
  32. public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
  33. MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
  34. ObjectMapper objectMapper = new ObjectMapper();
  35. SimpleModule simpleModule = new SimpleModule();
  36. simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
  37. simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
  38. objectMapper.registerModule(simpleModule);
  39. jackson2HttpMessageConverter.setObjectMapper(objectMapper);
  40. converters.add(jackson2HttpMessageConverter);
  41. }
  42. }