SpringBoot 的使用的中的一个奇怪问题 - Jackson ObjectMapper的注入冲突

在SpringBoot项目中,由于新增功能引入自定义ObjectMapper导致原有配置失效。问题源于新Mapper覆盖了默认Mapper。通过添加注解`@Secondary`使新Mapper在默认Mapper之后注册,解决冲突。但此方法会导致其他依赖默认Mapper的Bean出现循环引用。最终通过调整Bean初始化顺序及使用泛型避免循环依赖,并使用@Resource注解进行注入。

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

SpringBoot 的使用的中的一个奇怪问题:

Jackson中Mapper的注入冲突

0x1 问题

在工作中,使用的框架是SpringBoot,为了把一些对象转换为web使用的json格式的数据,就常常需要一些框架来完成,关于Object转换Json,常用的框架并不多,主要是这几个:

  • Jackson: 这个框架基本成为了Spring的标配。
  • FastJson : 这个是国内的一个框架,出自阿里,在某些时候据说效率会比较高。
  • Gson : 没怎么用过。

我现在使用的框架就是Jackson。

SpringBoot开发的系统,有一个application.properties文件,他可以配置很多关于Spring方方面面的基础设置,其中就有这Jackson。由于某种特定的需求,我需要在原有的系统中添加一个新的功能,而这个功能的实现,需要一个自己的ObjectMapper – 哦,这个就是Jackson转换ObjectJson数据的东西。

但是,一个奇怪的问题就出现了,当这个新的ObjectMapper作为Bean出现之后,原本SpingBoot中对于ObjectMapper的配置全都失去了效果,后来向前辈请教,得知应该是新的Mapper覆盖了原有的Mapper。

项目有一个WebConfig类,其中一个方法是这样的:

    @Bean
    public JsonHandler jsonHandler(ObjectMapper objectMapper) {
   
   
        JsonHandler jh = new JsonHandler();
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值