我有一个在 spring XML 中配置的 Mongo 映射转换器,如下所示:
<mongo:mapping-converter>
<mongo:custom-converters>
<mongo:converter>
<bean class="com.pqbook.marc.mongo.converters.MarcRecordMongoReaderConverter" />
</mongo:converter>
</mongo:custom-converters>
</mongo:mapping-converter>
我有一个 Mongo 集合,从中读取“记录”类型的字段并将其转换为我的自定义 POJO 类型“MyRecord”。 我的转换器类如下所示:
@Component
public class MarcRecordMongoReaderConverter implements Converter<Record, MyRecord> {
@Override
public MyRecord convert(Record source) {
// the conversion code
// this method returns an object of type 'MyRecord'
}
我需要以不同的方式注册这个转换器吗?这个转换器会在什么时候被调用?是否有遗漏的内容?
最佳答案
您的配置应该与此类似。您必须使用 mongo 模板注册转换器。
<mongo:mongo host="127.0.0.1" port="27017" />
<mongo:db-factory dbname="test" />
<mongo:mapping-converter id="mappingConverter" base-package="com.pqbook.marc.mongo">
<mongo:custom-converters>
<mongo:converter>
<bean class="com.pqbook.marc.mongo.converters.MarcRecordMongoReaderConverter" />
</mongo:converter>
</mongo:custom-converters>
</mongo:mapping-converter>
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
<constructor-arg name="mongoConverter" ref="mappingConverter"/>
</bean>
关于spring - 未调用 Mongo 映射转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41371477/