i在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时,此应用程序不再起作用,该应用程序不会以"未找到的bean of type deptionencya"启动。我认为这可能是因为当Spring试图注入依赖关系时,并未创建Bean,因此,作为" hack",@lazy @lazy in lazy in Depentencya注入。这起作用了。
鉴于此,配置类执行的顺序是多少。是吗:a)首先创建豆,然后注入依赖项b)尝试使用所有依赖项创建实例,然后在配置中创建所有bean。
有趣的发现;
配置类也是弹簧豆。
通常,首先扫描配置类并实例化。这必须是了解其他配置和豆的起点。
但是,您添加了@Autowire来进行现场注射。正如我所说,配置类也是弹簧豆。因此,春季需要首先解决其依赖关系。并陷入死锁。
回答您的问题。配置类先在其他豆之前实例化。