我们试图为Spring Data Mongo
设置自己的转换器,但遇到了问题。
似乎Spring从不调用CustomConversions上的registerConvertersIn
,因此通过重写AbstractMongoConfiguration#customConversions
添加的自定义转换器永远不会成为转换的一部分。
我们正在使用Spring Data Mongo 1.6.3,但似乎这也可能是1.8.0的问题(我检查了对CustomConversions#registerConvertersIn
的调用,却没有发现任何东西。)
我能够通过在自定义的MappingMongoConverter
中调用CustomConversions#registerConvertersIn
来解决此问题,如下所示:
class MongoConfig extends AbstractMongoConfiguration {
@Bean
@Override
public MappingMongoConverter mappingMongoConverter() throws Exception {
DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory());
MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, mongoMappingContext()) {
@Override
public void setCustomConversions(CustomConversions conversions) {
super.setCustomConversions(conversions);
conversions.registerConvertersIn(conversionService);
}
};
converter.setCustomConversions(customConversions());
return converter;
}
}
这是一个bug还是我们做错了什么?
找到了另一种解决方法: https://dev59.com/FmYr5IYBdhLWcg3wTYm4#14369998