springboot 开发遇到的问题

springboot 开发遇到的问题

1. 通用 mapper 与 springboot 热部署冲突。

描述:出现xx类缺少xx方法
原因:类加载器不一样
解决方法:统一类加载器,或者换高版本的通用mapper

2. spring boot2 配置 FastJsonHttpMessageConverter 不起作用

描述:数据库数据为null时,前端显示也为null,不能显示空字符串
原因:SpringBoot 2.x版本中加载WebMvcConfigurer的顺序发生了变动,会优先执行MappingJackson2HttpMessageConverter,优先使用Jackson处理
解决方法: 指定FastJsonHttpMessageConverter在converters内的顺序,使用converters.add(0,fastJsonHttpMessageConverter)

   @Override
       public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
           //1.需要定义一个convert转换消息的对象;
           FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
           //2.添加fastJson的配置信息,比如:是否要格式化返回的json数据;
           FastJsonConfig fastJsonConfig = new FastJsonConfig();
           fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat,
                   SerializerFeature.WriteMapNullValue,
                   SerializerFeature.WriteNullStringAsEmpty,
                   SerializerFeature.DisableCircularReferenceDetect,
                   SerializerFeature.WriteNullListAsEmpty,
                   SerializerFeature.WriteDateUseDateFormat);
   //        System.out.println("111111111111111111111111111111111111111111111111111111111");
           //3处理中文乱码问题
           List<MediaType> fastMediaTypes = new ArrayList<>();
           fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
           //4.在convert中添加配置信息.
           fastJsonHttpMessageConverter.setSupportedMediaTypes(fastMediaTypes);
           fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
           //5.将convert添加到converters当中.
           //指定 fastJson 执行顺序,不然可能会用 jsonfast SpringBoot 2.0.1版本中加载WebMvcConfigurer的顺序发生了变动
           // 故需使用converters.add(0, converter);指定FastJsonHttpMessageConverter在converters内的顺序,否则在SpringBoot 2.0.1及之后的版本中将优先使用Jackson处理
           converters.add(0,fastJsonHttpMessageConverter);
       }

猜你喜欢

转载自blog.csdn.net/z_yemu/article/details/88675628
今日推荐