如何在Spring MVC的contextConfigLocation中设置MongoDB ReadPreference

sor*_*rek 2 java sharding spring-mvc mongodb

我通过Spring MVC中的mongodb java驱动程序连接到MongoDB分片服务器.我使用以下版本:

  • 弹簧webmvc-3.2.1.RELEASE
  • 蒙戈-Java的应用程序/ 2.10.0 /蒙戈-java的驱动程序2.10.0
  • 弹簧数据的mongodb-1.2.0.RELEASE

我的Mongo选项在contextConfigLocation文件mvc-dispatcher-servlet.xml中设置

<mongo:mongo host="mongo.sample.com" port="30000">
     <mongo:options auto-connect-retry="true"
                    slave-ok="true"/>
</mongo:mongo>
Run Code Online (Sandbox Code Playgroud)

它的工作原理非常好,但是slave-ok已被come.MongoDB.ReadPreference弃用了.我只是想知道是否有任何方法可以在contextConfiLocation文件中为Spring MVC设置readPreference.

jai*_*ter 9

声明以下bean

<bean id="readPreferenceSecondary" class="com.mongodb.TaggableReadPreference.SecondaryReadPreference">
</bean>
Run Code Online (Sandbox Code Playgroud)

你在你的mongotemplate注入这个

<bean id="mongoTemplateProdDb" class="org.springframework.data.mongodb.core.MongoTemplate" >
        <property name="readPreference" ref="readPreferenceSecondary"></property>
</bean>
Run Code Online (Sandbox Code Playgroud)


JJ *_*kar 5

Expanding @Trisha's response in to an answer: "Do it in MongoTemplate programmatically" by setting the ReadPreference to SECONDARY.

MongoTemplate template = new MongoTemplate(...);
template.setReadPreference(com.mongodb.ReadPreference.SECONDARY);
Run Code Online (Sandbox Code Playgroud)