Java 如何从同一个捆绑包连接到两个不同的dbs?
我正在构建一个OSGi应用程序,我想访问两个不同的mongodb,一个用于授权,另一个用于存储数据 在我当前的blueprint.xml中,我使用Java 如何从同一个捆绑包连接到两个不同的dbs?,java,mongodb,blueprint-osgi,Java,Mongodb,Blueprint Osgi,我正在构建一个OSGi应用程序,我想访问两个不同的mongodb,一个用于授权,另一个用于存储数据 在我当前的blueprint.xml中,我使用 <cm:property-placeholder persistent-id="com.example" update-strategy="reload"> <cm:default-properties>
<cm:property-placeholder
persistent-id="com.example"
update-strategy="reload">
<cm:default-properties>
<cm:property name="mongodbUsername" value="XXXX"/>
<cm:property name="mongodbPassword" value="XXXX"/>
<cm:property name="mongodbDatabase" value="XXXX"/>
<cm:property name="mongodbIp" value="XXXXXX"/>
<cm:property name="mongodbPort" value="27017"/>
</cm:default-properties>
</cm:property-placeholder>
<bean id="mongoConfig"
class="com.example.MongoConfig"
init-method="init">
<property name="dbIp" value="${mongodbIp}"/>
<property name="dbName" value="${mongodbDatabase}"/>
<property name="dbPort" value="${mongodbPort}"/>
<property name="dbPassword" value="${mongodbPassword}"/>
<property name="dbUsername" value="${mongodbUsername}"/>
</bean>
public class MongoConfig {
private String dbUsername;
private String dbPassword;
private String dbIp;
private int dbPort;
private String dbName;
private MongoClient mongoClient;
private static final String COLLECTION = "example";
private MongoCollection<Document> myCollection;
public void init() {
String serverDetails = String.format("%s:%s", dbIp, dbPort);
String userAuth = "";
String connUrl = "";
if (dbUsername != null && dbPassword != null) {
userAuth = String.format("%s:%s", dbUsername, dbPassword);
connUrl = String.format("mongodb://%s@%s", userAuth, serverDetails);
} else {
connUrl = String.format("mongodb://%s", serverDetails);
}
MongoClientURI uri = new MongoClientURI(connUrl);
this.mongoClient = new MongoClient(uri);
this.myCollection = mongoClient.getDatabase(dbName).getCollection(COLLECTION);
}
}