Java Web アプリケーションを使用してリモート MongoDB データベースに接続します。以下のコードは確かにあなたを助けます。
以下のコードを使用する前に、資格情報を含むプロパティ ファイルを追加してください。spring-config.xml でそのプロパティ ファイルを読み取ります。以下のコードを使用して、プロパティ ファイルを読み取ることができます -
<context:property-placeholder location='classpath:/config/configTest.properties'/>
@Configuration public class MongoConfiguration extends AbstractMongoConfiguration{
@Value("${mongodb.dbname}")
private String dbName;
@Value("${mongodb.host}")
private String host;
@Value("${mongodb.port}")
private Integer port;
@Value("${mongodb.username}")
private String userName;
@Value("${mongodb.password}")
private String password;
@Value("${mongodb.authenticationdatabase}")
private String authenticationDatabase;
@Override
protected String getDatabaseName() {
return this.dbName;
}
@Override
public MongoClient mongo() throws Exception {
List<ServerAddress> serverAddresses = new ArrayList<ServerAddress>();
ServerAddress address = new ServerAddress(host, port);
serverAddresses.add(address);
List<MongoCredential> credentials = new ArrayList<MongoCredential>();
MongoCredential credential = MongoCredential.createPlainCredential(userName, authenticationDatabase, password.toCharArray());
credentials.add(credential);
return new MongoClient(serverAddresses, credentials);
}
@Override
@Bean
public SimpleMongoDbFactory mongoDbFactory() throws Exception {
return new SimpleMongoDbFactory(mongo(), getDatabaseName());
}
@Override
@Bean
public MongoTemplate mongoTemplate() throws Exception {
final MongoTemplate mongoTemplate = new MongoTemplate(mongo(), getDatabaseName());
mongoTemplate.setWriteConcern(WriteConcern.SAFE);
return mongoTemplate;
}