小编sha*_*enR的帖子

Spring Boot bean 创建和依赖注入的顺序是什么?

我当时正在做一个关于 Spring Boot 1.5 的项目。它具有以下类型的配置类:

@Configurtion
public class Foo{

 @Autowired
 private DependencyA dependencyA;

 @Bean
 public DependencyA getDependency(){
   return new DependencyAImpl();
  }

}
Run Code Online (Sandbox Code Playgroud)

这在 Spring Boot 1.5 中工作得很好,但是当我升级到 Spring Boot 2 时,这不再工作,应用程序将无法启动,并出现异常“找不到 DependencyA 类型的 bean”。我认为这可能是因为 Spring 尝试注入依赖项时未创建 bean,因此,作为“黑客”,将 @Lazy 添加到 dependencyA 注入中。这有效。

鉴于此,配置类的执行顺序是怎样的?是:A)首先创建bean,然后注入依赖项B)尝试创建具有所有依赖项的实例,然后在配置中创建任何bean。

java spring dependency-injection spring-boot spring-config

6
推荐指数
1
解决办法
2430
查看次数