有没有一种方法可以创建用于不同目的的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的限定符。它也可以用于注释其他自定义注释,这些注释随后可以用作限定符。