动态创建多个mongotemplate
时间: 2023-08-06 12:08:38 浏览: 44
在 Spring Boot 应用中,我们也可以动态创建多个 MongoTemplate 实例。我们可以通过 `MongoDbFactory` 接口的实现类 `SimpleMongoClientDbFactory` 来创建 MongoDbFactory 实例,然后再根据该实例创建 MongoTemplate 实例。
示例代码如下:
```java
@Service
public class MongoTemplateService {
private final Map<String, MongoTemplate> mongoTemplates = new HashMap<>();
public void addMongoTemplate(String dbName, String uri) {
MongoClient mongoClient = MongoClients.create(uri);
MongoDbFactory mongoDbFactory = new SimpleMongoClientDbFactory(mongoClient, dbName);
MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory);
mongoTemplates.put(dbName, mongoTemplate);
}
public MongoTemplate getMongoTemplate(String dbName) {
return mongoTemplates.get(dbName);
}
}
```
在上面的示例代码中,我们通过 `addMongoTemplate` 方法动态创建 MongoTemplate 实例,并将其存储在 `mongoTemplates` Map 中;通过 `getMongoTemplate` 方法获取指定名称的 MongoTemplate 实例。
需要注意的是,这种动态创建 MongoTemplate 的方式必须保证在使用该实例之前已经创建,并且在使用完毕后及时关闭连接,以避免连接泄露和性能问题。