使用@Autowired字段的Spring @Configuration行为

时间:2015-09-30 20:47:15

标签: java spring dependency-injection configuration autowired

我期待以下代码抛出某种初始化或循环依赖性异常,但它似乎有效。我可以在其他课程中@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容器可以在以后生成异常。

我不确定这是如何适用于我的代码的。有人能帮助我更好地理解这一点吗?

提前致谢。

0 个答案:

没有答案