多个MongoTemplate, 如何指定注入的是哪个?
在Spring框架中,如果你定义了多个相同类型的Bean(例如MongoTemplate
),并且需要在其他地方注入其中一个,可以使用@Qualifier
注解指定你想要注入哪一个。
当你创建MongoTemplate
Bean时,可以给每个Bean指定一个名称:
@Configuration
public class MongoConfig {
// ...
@Bean(name = "mongoTemplate1")
public MongoTemplate mongoTemplate1() { /* ... */ }
@Bean(name = "mongoTemplate2")
public MongoTemplate mongoTemplate2() { /* ... */ }
}
然后,在需要注入MongoTemplate
的地方,使用@Qualifier
注解指定Bean的名称:
@Service
public class MyService {
private final MongoTemplate mongoTemplate;
public MyService(@Qualifier("mongoTemplate1") MongoTemplate mongoTemplate) {
this.mongoTemplate = mongoTemplate;
}
// ...
}
这样,mongoTemplate1
就会被注入到MyService
中。如果你需要注入mongoTemplate2
,只需将@Qualifier
的值改为"mongoTemplate2"
即可。