使用 Java Web 应用程序连接到远程 MongoDB 数据库。下面的代码肯定会帮助你。
在使用以下代码之前,请添加具有凭据的属性文件,其中包含所有其他必需的详细信息。在 spring-config.xml 中读取该属性文件。您可以使用下面的代码来读取属性文件 -
<context:property-placeholder location='classpath:/config/configTest.properties'/>
@Configuration 公共类 MongoConfiguration 扩展 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;
}