springboot 开发遇到的问题

本文聚焦Spring Boot开发中的问题。一是通用Mapper与热部署冲突,因类加载器不同致类缺方法,可统一加载器或换高版本Mapper;二是Spring Boot 2配置FastJsonHttpMessageConverter无效,因加载顺序变动优先用Jackson,需指定FastJson顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
       }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值