3

我的 Spring 应用程序中有以下工作配置:

<mongo:mongo id="myRs" replica-set="myhost:27017">

  <mongo:options max-wait-time="1500"
                   connect-timeout="30000" />
</mongo:mongo>

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <property name="writeResultChecking" value="EXCEPTION"/>
    <property name="writeConcern" value="FSYNC_SAFE"/>
    <constructor-arg ref="myRs"/>
    <constructor-arg name="databaseName" value="mydb"/>
</bean>

现在我要做的就是设置用户名/密码以访问 mongo 数据库而不更改我的代码(即仅通过更新 Spring 应用程序上下文 xml 文件)。那可能吗?如果是这样,怎么做?

谢谢。

4

1 回答 1

6

您可以将这样的用户名密码传递给 MongoTemplate。使用PropertyPlaceholderConfigurer,您甚至可以从属性文件中读取用户名和密码。

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <property name="writeResultChecking" value="EXCEPTION"/>
    <property name="writeConcern" value="FSYNC_SAFE"/>
    <constructor-arg ref="myRs"/>
    <constructor-arg name="databaseName" value="mydb"/>
    <constructor-arg name="userCredentials" ref="userCredentials"/>
</bean>

<bean id="userCredentials" class="org.springframework.data.authentication.UserCredentials">
    <constructor-arg name="username" value="username" />
    <constructor-arg name="password" value="password" />
</bean>
于 2013-05-14T04:06:29.797 回答