这是我的配置:
<org.springframework.version>3.1.0.RELEASE</org.springframework.version>
<spring.data.mongo.version>1.0.0.RC1</spring.data.mongo.version>
是否可以从这个1弹簧上下文文件中分割出来:
<mongo:mapping-converter base-package="my.package.converter">
<mongo:custom-converters>
<mongo:converter>
<bean class="my.package.converter.ClassAbcReadConverter" />
</mongo:converter>
<mongo:converter>
<bean class="my.package.converter.ClassAbcWriteConverter" />
</mongo:converter>
<mongo:converter>
<bean class="my.package.converter.subpackage.ClassDefReadConverter" />
</mongo:converter>
<mongo:converter>
<bean class="my.package.converter.subpackage.ClassDefWriteConverter" />
</mongo:converter>
<mongo:converter>
<bean class="my.package.converter.subpackage.ClassGhiWriteConverter" />
</mongo:converter>
<mongo:converter>
<bean class="my.package.converter.subpackage.ClassGhiReadConverter" />
</mongo:converter>
</mongo:custom-converters>
</mongo:mapping-converter>
分为2个弹簧上下文文件(在不同的maven模块中),如下所示?
文件1-context.xml中
<mongo:mapping-converter base-package="my.package.converter">
<mongo:custom-converters>
<mongo:converter>
<bean class="my.package.converter.ClassAbcReadConverter" />
</mongo:converter>
<mongo:converter>
<bean class="my.package.converter.ClassAbcWriteConverter" />
</mongo:converter>
</mongo:custom-converters>
</mongo:mapping-converter>
文件2-context.xml中
<mongo:mapping-converter base-package="my.package.converter">
<mongo:custom-converters>
<mongo:converter>
<bean class="my.package.converter.subpackage.ClassDefReadConverter" />
</mongo:converter>
<mongo:converter>
<bean class="my.package.converter.subpackage.ClassDefWriteConverter" />
</mongo:converter>
<mongo:converter>
<bean class="my.package.converter.subpackage.ClassGhiWriteConverter" />
</mongo:converter>
<mongo:converter>
<bean class="my.package.converter.subpackage.ClassGhiReadConverter" />
</mongo:converter>
</mongo:custom-converters>
</mongo:mapping-converter>
mongo转换器的'合并'是否有任何有用的属性?
答案 0 :(得分:4)
custom-converters
元素实际上也有一个base-package
属性,它会触发列出的包,以便对Converter
和GenericConverter
实施进行扫描。您在mapping-converter
级别使用的是在启动时获取域类。因此,只需删除显式定义的转换器bean并添加其他属性即可。
<mongo:mapping-converter base-package="my.package.entities">
<mongo:custom-converters base-package="my.package.converters" />
</mongo:mapping-converter>
答案 1 :(得分:0)
如果配置为:
,我也会遇到同样的问题<mongo:mapping-converter>
<mongo:custom-converters>
<mongo:converter>
<bean class="com.abc.converter.mongo.DBObjectToDateTime" />
</mongo:converter>
<mongo:converter>
<bean class="com.abc.converter.mongo.DateTimeToDBObject" />
</mongo:converter>
</mongo:custom-converters>
</mongo:mapping-converter>
它工作正常。 如果配置为:
<mongo:mapping-converter base-package="com.abc.*.entities">
<mongo:custom-converters base-package="com.abc.converter.mongo" />
</mongo:mapping-converter>
未应用转换器。 pagckage com.abc。*。实体具有@Document注释类以及@Entity注释类。
答案 2 :(得分:0)
<mongo:mapping-converter base-package="my.package.entities">
<mongo:custom-converters base-package="my.package.converters" />
</mongo:mapping-converter>
不能在1.1.0.RELEASE中工作。如果你看看XSD文件,只有mongo:mapping-converter和converter define base-package。所以你仍然需要这样做。
<mongo:mapping-converter base-package="my.package.entities">
<mongo:custom-converters>
<mongo:converter>
<bean class="my.package.converters.DBObjectToDateTime" />
</mongo:converter>
<mongo:converter>
<bean class="my.package.converters.DateTimeToDBObject" />
</mongo:converter>
</mongo:custom-converters>
</mongo:mapping-converter>
我没有尝试过:
<mongo:mapping-converter base-package="my.package.entities">
<mongo:custom-converters>
<mongo:converter base-package="my.package.converters.DBObjectToDateTime" />
</mongo:custom-converters>
</mongo:mapping-converter>
会注册所有转换器。它似乎没有意义,如果正确实施,维护者的建议会更好。