【问题标题】:Order of bean creation in Spring BootSpring Boot 中创建 bean 的顺序
【发布时间】:2016-10-12 01:26:30
【问题描述】:

我正在开发一个 Spring Boot 应用程序,并且我正在尝试验证在启动时创建某些 bean 的顺序。据我通过调试可以看出,这就是正在发生的事情:

  1. 在我的 Configuration 类中定义的 Bean 已初始化。
  2. 自动配置类中定义的 Bean 已初始化。
  3. @Component 注释的类被初始化。

第 1 步和第 2 步对我来说很有意义,因为这符合 Spring Boot 在 auto configuration 上的文档。

我不明白@Component 带注释的类是否最后被故意初始化,或者这只是巧合。我不想把它当作一个“功能”来依赖它。

【问题讨论】:

  • 它们通常不应该,因为您的组件扫描 bean 应该覆盖自动配置。

标签: java spring spring-boot


【解决方案1】:

我认为一般来说,什么时候创建的 bean 不应该让你担心。您会观察到,在其构造函数中依赖于其他 bean 依赖项的 Bean 将在其依赖项之后创建,但仅此而已。

在你的逻辑中不应依赖除此之外的任何模式或行为。您可能确实找到了一种模式,但行为可能会在未来发生变化,尽管我不知道这种情况发生的可能性有多大。

【讨论】:

  • 我认为这是正确的答案,至少对我来说是这样。最初的问题源于较早的问题,其中看起来某些 bean 无法自动装配,因为它们尚未创建。经过多次重构后,这个问题似乎已经消失,这让我相信,正如这个答案所说,问题不是 bean 创建的顺序,而是我正在做的事情。
猜你喜欢
  • 2019-12-25
  • 2019-04-03
  • 2016-07-05
  • 2018-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-19
  • 1970-01-01
相关资源
最近更新 更多