SpringBoot 的使用的中的一个奇怪问题:
Jackson中Mapper的注入冲突
0x1 问题
在工作中,使用的框架是SpringBoot,为了把一些对象转换为web使用的json格式的数据,就常常需要一些框架来完成,关于Object转换Json,常用的框架并不多,主要是这几个:
- Jackson: 这个框架基本成为了Spring的标配。
- FastJson : 这个是国内的一个框架,出自阿里,在某些时候据说效率会比较高。
- Gson : 没怎么用过。
我现在使用的框架就是Jackson。
SpringBoot开发的系统,有一个application.properties
文件,他可以配置很多关于Spring方方面面的基础设置,其中就有这Jackson。由于某种特定的需求,我需要在原有的系统中添加一个新的功能,而这个功能的实现,需要一个自己的ObjectMapper
– 哦,这个就是Jackson
转换Object
和Json
数据的东西。
但是,一个奇怪的问题就出现了,当这个新的ObjectMapper
作为Bean出现之后,原本SpingBoot中对于ObjectMapper
的配置全都失去了效果,后来向前辈请教,得知应该是新的Mapper覆盖了原有的Mapper。
项目有一个WebConfig类,其中一个方法是这样的:
@Bean
public JsonHandler jsonHandler(ObjectMapper objectMapper) {
JsonHandler jh = new JsonHandler