【问题标题】:Is there a way I can get my spring beans wired together without having them be initialized?有没有一种方法可以让我的 spring bean 连接在一起而无需初始化它们?
【发布时间】:2013-04-18 19:20:36
【问题描述】:

理想情况下,我希望 Spring 从我的上下文配置中实例化所有 bean,按照指定将它们连接在一起,但永远不要在其中任何一个上调用 init()。这可能吗?

其他可能适合我需要的东西:如果有一个钩子在接线之后但在任何 bean 上调用 init() 之前运行。

【问题讨论】:

    标签: java spring dependency-injection autowired


    【解决方案1】:

    您可以实现InitializingBean 以使用afterPropertiesSet 或使用@PostConstruct 在构造后执行某些操作,但这并不能保证它在接线之前,但听起来这不是您正在寻找的答案。

    无法保证 Spring 将初始化 bean 的顺序,因为它必须找出最佳的初始化顺序来处理循环引用等问题。

    真正保证在连接到另一个 bean 之前发生某些事情的唯一方法是在构造函数中执行它。这就是为什么我总是使用构造函数而不是属性/设置器注入。

    【讨论】:

      猜你喜欢
      • 2023-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-06
      • 1970-01-01
      • 2011-12-08
      相关资源
      最近更新 更多