我遇到一个问题,其中在2个不同的配置类中定义了单个Service的bean定义。
@Configuration
public class ConfigurationA{
@Primary
@Bean("beana")
public beanA(){
return Mockito.mock(BeanA.class);
}
@Bean("beanb")
public beanB(){
return new BeanB(beanA());
}
@PostConstruct
public void initialize(){
beanA().dosomething();
}
}
@Configuration
public class ConfigurationB{
@Bean("beana")
public beanA(){
return new BeanA();
}
}
因此,当调用intialize()方法时,我希望将使用BeanA的模拟实例,但使用通过ConfigurationB类注入的真实实例。
我已将“ beana”标记为主要bean,因此spring应该理想地使用此实例,但应使用在不同配置类中定义的实际实例。
有什么方法可以配置使用ConfigurationA类中的bean定义而不是ConfigurationB?