有没有一种方法可以创建用于不同目的的ObjectMapper的两个实例。

修改的ObjectMapper

    @Component
    class MyObjectMapper extends ObjectMapper{
      public MyObjectMapper(){
        super();
      }

    public MyObjectMapper(MyObjectMapper om) {
        super(om);
     }

    @Override
    public MyObjectMapper copy() {
        return new MyObjectMapper(this);
     }
   }


现在按如下方式使用它

@Autowired ObjectMapper objectMapper; //performs standard serialization
@Autowire MyObjectMapper myMapper; //i can add custom filters in thiis mapper.


我尝试了类似的设置,但自定义映射器实际上会影响所有rest controllers抛出JSON parse error: Unrecognized field的原始映射器

编辑:不确定这一点是否很重要,但仍在添加
我正在使用spring-boot-starter-json

最佳答案

这正是您应该使用@Qualifier批注的地方。


  自动装配时,此注释可以在字段或参数上用作候选bean的限定符。它也可以用于注释其他自定义注释,这些注释随后可以用作限定符。

09-25 21:17