spring MongoDB 配置以及开启事务
配置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
作者:追梦鹿少年
来源链接:https://blog.csdn.net/huanglu0314/article/details/124852765