Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用连接字符串为mongo配置SpringXMLBean_Java_Spring_Mongodb - Fatal编程技术网

Java 使用连接字符串为mongo配置SpringXMLBean

Java 使用连接字符串为mongo配置SpringXMLBean,java,spring,mongodb,Java,Spring,Mongodb,我在项目中使用mongo,并且在applicationContext.xml文件中有如下配置: <!-- MongoDb configurations --> <mongo:mongo host="${mongo.host}" port="${mongo.port}" /> <mongo:db-factory dbname="${mongo.database}" /> <bean id="mongoTemplate" class="org.spring

我在项目中使用mongo,并且在applicationContext.xml文件中有如下配置:

<!-- MongoDb configurations -->
<mongo:mongo host="${mongo.host}" port="${mongo.port}" />
<mongo:db-factory dbname="${mongo.database}" />

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
</bean>
但现在我已经将mongo移动到安全服务器,它具有用户名、密码、主机和副本集选项

我可以用这种语法连接它

String connectionString = String.format("mongodb://%s:%s@%s/%s%s", username, password, host, database, options);

MongoClientURI client_uri = new MongoClientURI(connectionString);
        MongoClient client = new MongoClient(client_uri);
        DB db = client.getDB(database);

请告知我如何在配置xml文件中配置相同的内容,或者是否有任何配置属性可用于设置连接字符串。

如果您希望使用uri,为什么不直接将uri放入xml配置中?如果您只想从代码中的不同参数值构建一个URI,那么我就看不出这一点,因为如果它们已经是不同的参数值,那么从它们生成URI真的没有任何意义。如何在spring xml文件中配置mongo时设置一个直接URI?这在单元测试中:非常感谢Neil:)
String connectionString = String.format("mongodb://%s:%s@%s/%s%s", username, password, host, database, options);

MongoClientURI client_uri = new MongoClientURI(connectionString);
        MongoClient client = new MongoClient(client_uri);
        DB db = client.getDB(database);