框架默认提供基于fastJosn的HttpMessageConverters实现,默认情况下关闭
代码实现
@Bean@ConditionalOnProperty(value = "xy.core.http.message.converter.enable", havingValue = "true")public HttpMessageConverters httpMessageConverters() {//1、创建FastJson信息转换对象FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();//2、创建FastJsonConfig对象并设定序列化规则 序列化规则详见SerializerFeature类中,后面会讲FastJsonConfig fastJsonConfig = new FastJsonConfig();fastJsonConfig.setSerializerFeatures(SerializerFeature.QuoteFieldNames,SerializerFeature.WriteMapNullValue,SerializerFeature.DisableCircularReferenceDetect,SerializerFeature.WriteDateUseDateFormat,SerializerFeature.WriteNullStringAsEmpty);//本人就坑在WriteNonStringKeyAsString 将不是String类型的key转换成String类型,否则前台无法将Json字符串转换成Json对象//3、中文乱码解决方案List<MediaType> fastMediasTypes = new ArrayList<MediaType>();fastMediasTypes.add(new MediaType(MediaType.APPLICATION_JSON, Charset.forName("UTF-8")));fastConverter.setSupportedMediaTypes(fastMediasTypes);//4、将转换规则应用于转换对象fastConverter.setFastJsonConfig(fastJsonConfig);log.info("loading HttpMessageConverters............");return new HttpMessageConverters(fastConverter);}
开发配置
xy.core.http.message.converter.enable=true
