使用@Configuration
注释的类等效于使用带有<bean>
元素的传统Spring XML定义bean。
如果我理解得很清楚,每个@Bean
定义会生成一个BeanDefinition
,Spring会用它来生成一个bean,不是吗?
现在假设我自动连接ApplicationContext并访问其中一个bean:
@Configuration
public class SomeConfig{
@Autowired
private ApplicationContext ac;
@Bean
public MyBean myBean(){
AnotherBean ab = (AnotherBean) ac.getBean("someBean");
MyBean mb = new MyBean(ab);
return mb;
}
}
我真的是在访问bean还是BeanDefinition
?这有影响,我不希望容器在BeanDefinition阶段开始创建所有bean。
如果我是@Autowire
bean,我实际上是自动装配bean还是BeanDefinition?
@Configuration
public class SomeConfig{
@Autowired
private AnotherBean ab;
@Bean
public MyBean myBean(){
MyBean mb = new MyBean(ab);
return mb;
}
}