【发布时间】:2020-06-09 09:21:25
【问题描述】:
我想创建 Clazz,在这里我可以创建两个具有相同类但具有不同配置的 Bean。
public class Clazz {
//same class : Client, inside has the different configuration
//inicilized by methods
@Bean(name="Bean1")
public Client1 (){}
@Bean(name = "Bean2")
public Clien2t (){}
}
然后我想将它们注入到其他类中
public class ClassForInjectBean1{
@Autowired
@Qualifier("Bean1")
@NotNull
Client client
....
}
public class ClassForInjectBean2{
@Autowired
@Qualifier("Bean2")
@NotNull
Client client
....
}
我已经在 ClassForInjectBean1 和 ClassForInjectBean2 类中尝试过这种构造
@Resource(name = "Bean2")
@NotNull
Client client
和
@Autowired
@Qualifier("Bean2")
但是spring不明白
Ошибка : ClassForInjectBean1 中构造函数的参数 1 需要单个 bean,但找到了 2 个: - Bean1:由类路径资源中的方法“Client1”定义... - Bean2:由类路径资源中的方法“Client2”定义... 为什么我不能这样做?
我知道https://www.baeldung.com/spring-qualifier-annotation有这种方式,但是我不会创建很多类和接口。
【问题讨论】:
标签: java spring spring-boot spring-mvc dependency-injection