【问题标题】:How to inject an external-defined class in Java EE如何在 Java EE 中注入外部定义的类
【发布时间】:2014-05-27 15:03:25
【问题描述】:

假设我想使用由 JavaSE 编写的外部库定义的 Foo 类(并假设我无法编辑它)。

Spring中,我可以这样声明这个类为bean:

@Bean
public Foo foo() {
    return new Foo();
}

那么,就可以执行DI了:

@Autowired
private Foo foo;

有没有办法在 Java EE 中做同样的事情(如果可能,通过避免继承)?

【问题讨论】:

标签: java spring jakarta-ee dependency-injection


【解决方案1】:

在 CDI 中,您甚至不必对 pojo 进行注释。

考虑在外部库中声明了以下内容:

public class MyService{}

然后在您的项目中,您可以拥有一个无状态 ejb 或只是另一个 CDI bean。

@Stateless
public class MyController{

 @Produces
 public MyService getMyService(){
  return new MyService();
 }
}

现在从你的控制器中的其他地方

@SessionScoped
@Named
public class MySessionController implements Serializable{
  //simple, just inject and the producer method will be called automatically
  @Inject
  private MyService service;
}

您需要从 url 检查 Producers 和 Stereotypes:

Producers and Stereotypes

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-14
    • 2017-09-20
    • 2014-11-23
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多