通过Configuration 配置多个mongoTemplate
时间: 2023-07-12 20:43:43 浏览: 100
Spring boot 配置多个redis的方法示例
在 Spring Boot 应用中,可以通过 Configuration 类配置多个 MongoTemplate 实例。示例代码如下:
```java
@Configuration
public class MongoConfig {
// 配置连接
@Bean
public MongoClient mongoClient() {
return MongoClients.create("mongodb://localhost:27017");
}
// 配置 MongoDbFactory
@Bean
public MongoDbFactory mongoDbFactory() {
return new SimpleMongoClientDbFactory(mongoClient(), "database1");
}
// 配置第一个 MongoTemplate
@Bean
public MongoTemplate mongoTemplate() {
return new MongoTemplate(mongoDbFactory());
}
// 配置第二个 MongoTemplate
@Bean
public MongoTemplate mongoTemplate2() {
MongoTemplate mongoTemplate = new MongoTemplate(mongoClient(), "database2");
return mongoTemplate;
}
}
```
在上面的示例代码中,我们通过 @Bean 注解分别定义了 `mongoClient`、`mongoDbFactory`、`mongoTemplate` 和 `mongoTemplate2` 四个 Bean,其中 `mongoTemplate` 和 `mongoTemplate2` 分别代表了两个不同的 MongoTemplate 实例。在 `mongoTemplate` 中,我们使用了 `mongoDbFactory()` 方法返回的 MongoDbFactory 实例作为构造参数,以连接到名为 `database1` 的数据库;而在 `mongoTemplate2` 中,我们直接使用了 `MongoTemplate` 的构造方法,指定了连接到名为 `database2` 的数据库。
在使用时,我们可以通过 `@Qualifier` 注解指定要使用的 MongoTemplate 实例。示例代码如下:
```java
@Service
public class UserService {
@Autowired
@Qualifier("mongoTemplate")
private MongoTemplate mongoTemplate;
@Autowired
@Qualifier("mongoTemplate2")
private MongoTemplate mongoTemplate2;
// ...
}
```
在上面的示例代码中,我们通过 `@Autowired` 和 `@Qualifier` 注解将 `mongoTemplate` 和 `mongoTemplate2` 注入到 UserService 类中,以供后续使用。需要注意的是,如果没有指定 `@Qualifier`,Spring 将会默认使用 `mongoTemplate`。
阅读全文