配置MongoDB,编写MongoDBConfig配置
mongodb:
uri: mongodb://appdb:appdb@node01:28017/appdb
database: appdb
authentication-database: appdb
userName: appdb
password: appdb
host: node01
port: 28017
配置MongoClient
@Configuration
public class MongoConfig {
@Value("${mongodb.uri}")
private String uri;
@Value("${mongodb.database}")
private String database;
@Value("${mongodb.authentication-database}")
private String authenticationDataBase;
@Value("${mongodb.userName}")
private String userName;
@Value("${mongodb.password}")
private String password;
@Value("${mongodb.port}")
private Integer port;
@Value("${mongodb.host}")
private String host;
@Bean
public MongoClient mongoClient() {
// MongoClientSettings.Builder builder = MongoClientSettings.builder();
// MongoCredential credential = MongoCredential.createCredential(userName,authenticationDataBase,password.toCharArray());
// builder.credential(credential);
// builder.applyConnectionString(new ConnectionString(uri));
// return MongoClients.create(builder.build(), SpringDataMongoDB.driverInformation());
return MongoClients.create(uri);
}
}
配置MongoTemplate
@Bean
public MongoTemplate mongoTemplate() {
MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory());
return mongoTemplate;
}
@Bean
public MongoDatabaseFactory mongoDbFactory() {
return new SimpleMongoClientDatabaseFactory(mongoClient(),database);
}
配置MongoDB事务
@Bean
public MongoTransactionManager mongoTransactionManager(MongoDatabaseFactory mongoDbFactory) {
return new MongoTransactionManager(mongoDbFactory);
}
如果是spring boot集成MongoDB的话,就不需要配置上面的MongoTemplate的了,如果想要开启事务需要配置下 MongoTransactionManager
spring boot集成mongo只需要在配置文件中配置:
spring:
data:
mongodb:
uri: mongodb://appdb:appdb@node01:28017/appdb
authentication-database: appdb
或者:
spring:
data:
mongodb:
username: appdb
password: appdb
authentication-database: appdb
host: node01
port: 28017
database: appdb
2829

被折叠的 条评论
为什么被折叠?



