Spring boot项目引入mongo多数据源配置
不仅仅是一个教程,我觉得是一种思维的方式
首先Spring boot引入mongo单数据源很好做,引入 spring-boot-starter-data-mongodb然后配置文件增加spring.data.mongodb.uri=xxx配置就行了。在调用的时候注入mongoTemplate这类就可以调用了。那么我们思考可以得出多数据源就是生成多个mongoTemple类,然后我们在需要哪一个的时候就注入哪一个。一般都能分析到这步,但是接下来怎么做就无处下手了,然后就网上找各种教程了。下面我以我实际配置的例子和我一步一步的思考,首先找到mongoTemple的源码,看他是怎么实现的,我们跟着源码实现自己的。
MongoTemplate源码
public MongoTemplate(MongoClient mongoClient, String databaseName) {
this((MongoDbFactory)(new SimpleMongoDbFactory(mongoClient, databaseName)), (MongoConverter)null);
}
public MongoTemplate(MongoDbFactory mongoDbFactory) {
this((MongoDbFactory)mongoDbFactory, (MongoConverter)null);
}
public MongoTemplate(MongoDbFactory mongoDbFactory, @Nullable MongoConverter mongoConverter) {
this.writeConcernResolver = DefaultWriteConcernResolver.INSTANCE;
this.writeResultChecking = WriteResultChecking.NONE;
Assert.notNull(mongoDbFactory, "MongoDbFactory must not be null!");
this.mongoDbFactory = mongoDbFactory;
this.exceptionTranslator = mongoDbFactory.getExceptionTranslator();
this.mongoConverter = mongoConverter == null ? getDefaultMongoConverter(mongoDbFactory) : mongoConverter;
this.queryMapper = new QueryMapper(this.mongoConverter);
this.updateMapper = new