框架默认提供基于fastJosn的HttpMessageConverters实现,默认情况下关闭

代码实现

  1. @Bean
  2. @ConditionalOnProperty(value = "xy.core.http.message.converter.enable", havingValue = "true")
  3. public HttpMessageConverters httpMessageConverters() {
  4. //1、创建FastJson信息转换对象
  5. FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
  6. //2、创建FastJsonConfig对象并设定序列化规则 序列化规则详见SerializerFeature类中,后面会讲
  7. FastJsonConfig fastJsonConfig = new FastJsonConfig();
  8. fastJsonConfig.setSerializerFeatures(
  9. SerializerFeature.QuoteFieldNames,
  10. SerializerFeature.WriteMapNullValue,
  11. SerializerFeature.DisableCircularReferenceDetect,
  12. SerializerFeature.WriteDateUseDateFormat,
  13. SerializerFeature.WriteNullStringAsEmpty
  14. );
  15. //本人就坑在WriteNonStringKeyAsString 将不是String类型的key转换成String类型,否则前台无法将Json字符串转换成Json对象
  16. //3、中文乱码解决方案
  17. List<MediaType> fastMediasTypes = new ArrayList<MediaType>();
  18. fastMediasTypes.add(new MediaType(MediaType.APPLICATION_JSON, Charset.forName("UTF-8")));
  19. fastConverter.setSupportedMediaTypes(fastMediasTypes);
  20. //4、将转换规则应用于转换对象
  21. fastConverter.setFastJsonConfig(fastJsonConfig);
  22. log.info("loading HttpMessageConverters............");
  23. return new HttpMessageConverters(fastConverter);
  24. }

开发配置

  1. xy.core.http.message.converter.enable=true