我正在Spring Boot 1.5上的一个项目上工作。它具有以下类型的配置类:
@Configurtion
public class Foo{
@Autowired
private DependencyA dependencyA;
@Bean
public DependencyA getDependency(){
return new DependencyAImpl();
}
}
在Spring Boot 1.5中这可以正常工作,但是当我升级到Spring Boot 2时,它不再工作,应用程序将无法启动,但出现异常“找不到DependencyA类型的bean”。我认为这可能是因为在Spring尝试注入依赖项时未创建该Bean,因此,作为“ hack”,在依赖项注入中添加了@Lazy。这行得通。
鉴于此,配置类的执行顺序是什么。是吗: A)首先创建bean,然后注入依赖项 B)尝试创建具有所有依赖项的实例,然后在配置中创建任何bean。