【问题标题】:Order of creating @Inject objects创建@Inject 对象的顺序
【发布时间】:2014-01-21 06:19:46
【问题描述】:

查看以下类(请注意,它不是单例):

public MyClass() {

    @Inject private A a;
    @Inject private B b;

}

首先创建ab 的对象是什么?

是否可以确定创建对象的顺序?

【问题讨论】:

  • 很遗憾,我无法回答您的问题,但是,我可以建议您仔细查看您的类并尝试弄清楚如何不依赖于对象实例化的顺序。跨度>

标签: java cdi inject


【解决方案1】:

其实,你可以非常控制命令。首先,假设它们具有正常范围(例如@RequestScoped)。其次,使B 具有对A 的引用。您会看到A 首先被实例化,然后是B。请注意,您需要通过 @PostConstruct 方法进行跟踪。

【讨论】:

    【解决方案2】:

    我不这么认为,我也看不出它有什么重要的原因(我也担心对象实例化的顺序会随着部署的不同而改变)。保证您在@PostConstruct 中注入了所有对象,这是最重要的事情(就我而言)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-02
      • 2017-03-12
      • 1970-01-01
      • 2012-05-05
      • 2014-09-02
      相关资源
      最近更新 更多