【发布时间】:2018-12-14 00:39:13
【问题描述】:
我为我的班级创建了一个 mixin。 mixin 本身工作正常,这不是大多数人在混合 faterxml/codehaus 注释时遇到的问题。 我在单元测试中对其进行了测试,使用 addMixIn 方法“手动”创建了 ObjectMapper - 它工作得很好。
我想使用该 mixin 来修改从我的 REST 端点返回的响应 json。 我尝试以多种不同的方式自定义 Spring Boot 的 ObjectMapper:
BuilderCustomizer:
@Bean
public Jackson2ObjectMapperBuilderCustomizer addMixin(){
return new Jackson2ObjectMapperBuilderCustomizer() {
@Override
public void customize(Jackson2ObjectMapperBuilder jacksonObjectMapperBuilder) {
jacksonObjectMapperBuilder.mixIn(MyClass.class, MyClassMixin.class);
}
};
}
建造者:
@Bean
Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder() {
return new Jackson2ObjectMapperBuilder().mixIn(MyClass.class, MyClassMixin.class);
}
转换器:
@Bean
public MappingJackson2HttpMessageConverter configureJackson(){
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
ObjectMapper mapper = new ObjectMapper();
mapper.addMixIn(MyClass.class, MyClassMixin.class);
converter.setObjectMapper(mapper);
return converter;
}
对象映射器:
@Autowired(required = true)
public void configureJackon(ObjectMapper jsonMapper){
jsonMapper.addMixIn(MyClass.class, MyClassMixin.class);
}
这些都不起作用。
【问题讨论】:
标签: java spring-boot jackson mixins jackson2