【问题标题】:Java EE 6 @Inject lazy? [duplicate]Java EE 6 @Inject 懒惰? [复制]
【发布时间】:2013-04-10 08:32:00
【问题描述】:

我正在对我们当前正在开发的应用程序进行一些重构和审查。这样做时,我发现注入了更多的 bean,我认为让它们以惰性方式加载会更适合它们的目的。我正在使用 Java EE 6,并且倾向于使用比 EJB 注入更多的 CDI。

所以问题是是否可以懒惰地注入bean,如果可以,你怎么做?

【问题讨论】:

  • 是的,这几乎回答了我的问题 - 这是不可能的。谢谢!

标签: java dependency-injection java-ee-6 cdi inject


【解决方案1】:

如何使用

@Inject
private Instance<?> lazyProvider;

这允许获取“?”的实例实际需要时通过

lazyProvider.get();

【讨论】:

  • 我必须尝试一下,听起来很有希望。又怎么说我想得到什么类型?
  • Instance 是泛型类型。所以当你注入一个 Instance 时,get() 会返回一个 Foo。
  • 好的,例如,我如何注入 Foo ?我在哪里决定注射什么?
  • 就像你对 Foo 本身所做的那样。默认情况下,您将获得一个具有依赖范围的新实例。但您也可以(通过使用生产者或注释 Foo.class)定义自定义范围和注入行为。
猜你喜欢
  • 2012-03-02
  • 2018-02-27
  • 2012-08-12
  • 2012-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多