我正在尝试为一个bean创建两个bean id。 我正在收到NoUniqueBeanDefinitionException。 有什么可能解决此问题的方法?
谢谢
答案 0 :(得分:1)
Bean ID应该是唯一的。如果要创建2个相同类的bean,请为它们提供不同的id /名称,然后使用@Qualifier
自动装配确切的bean。
答案 1 :(得分:1)
手动创建bean并为其命名:
public class BeanClass {
}
@Configuration
public class ConfigurationClass {
@Bean(name = "instance1")
public BeanClass getBeanClass1() {
return new BeanClass();
}
@Bean(name = "instance2")
public BeanClass getBeanClass2() {
return new BeanClass();
}
}
现在使用@Qualifier
自动连接bean:
@Service
public class YourService {
@Autowire
@Qualifier("instance1")
public BeanClass bean;
}
如果您希望将未指定的bean设置为默认bean(那么无需使用@Qualifier
,则将@Primary
添加到所需的bean中。
@Primary // This tell spring to pick this bean if no `@Qualifier` is presented
@Bean(name = "instance2")
public BeanClass getBeanClass2() {
return new BeanClass();
}