【发布时间】:2019-11-09 22:40:57
【问题描述】:
我有以下情况,我有多个 MappingJackson2HttpMessageConverter,它们都使用一个共享的 ObjectMapper,上面添加了一个 mixin。
@Bean
public ObjectMapper objectMapper(){
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.addMixin(Item.class, ItemMixin.class);
return objectMapper;
}
@Bean
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter(){
MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter(objectMapper());
return mappingJackson2HttpMessageConverter;
}
应用程序是 SpringBoot(我知道 springboot 会自己默认消息转换器实例化),但问题是当我调用具有返回项目列表的端点时,我得到 500,因为以下行:
objectMapper.addMixin(Item.class, ItemMixin.class);
不知何故中断了,我不明白为什么。
@GetMappring(.....)
public List<Item> getItems(){
return Arrays.asList(new Item(1), new Item(2));
}
我知道默认情况下,spring boot 控制器在没有指定任何内容的情况下会返回一个字符串 json。为了更好的可读性,代码被简化了。
【问题讨论】:
标签: spring-boot jackson objectmapper jackson-databind jackson-modules