我期待以下代码抛出某种初始化或循环依赖性异常,但它似乎有效。我可以在其他课程中@Autowire
SomeOtherBean
,我检查过它不是null
。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyConfig {
@Autowired
private MyBean myBean;
@Bean
public MyBean createMyBean() {
return new MyBean();
}
@Bean
public SomeOtherBean createSomeOtherBean() {
return new SomeOtherBean(this.myBean);
}
}
3.4.1.3 Dependency resolution process说,
你通常可以相信Spring做正确的事。它在容器加载时检测配置问题,例如对不存在的bean和循环依赖关系的引用。当实际创建bean时,Spring会尽可能晚地设置属性并解析依赖关系。这意味着,如果在创建该对象或其依赖项之一时出现问题,则正确加载的Spring容器可以在以后生成异常。
我不确定这是如何适用于我的代码的。有人能帮助我更好地理解这一点吗?
提前致谢。