未调用Mongo映射转换器

时间:2016-12-29 00:09:49

标签: spring mongodb converter

我有一个用Spring配置的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系列,其类型为&#39;记录&#39;将被阅读并转换为我的自定义POJO类型&#39; MyRecord&#39;。 我的转换器类看起来像这样:

@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'
}

}

我是否需要以不同的方式注册此转换器?此时将调用此转换器?有什么东西可以包含在内吗?

1 个答案:

答案 0 :(得分:0)

您的配置应与此类似。您必须使用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>