我正在定义Java EE bean,如下所示:

@LocalBean
@Stateless
public class GreetingBean {

    private HelloBean helloBean;

    @Inject
    public void setHelloBean(HelloBean helloBean) {
        this.helloBean = helloBean;
    }

    // ...
}


和:

@Named
public class HelloBean {

    public HelloBean() { // ... }

    public HelloBean(String hello) { // ... }

}



现在,如何通过同时为其设置GreetingBean实例将HelloBean注入另一个类?
假设我为HelloBean类使用了两个不同的构造函数(一个带有参数的构造器,例如String,另一个没有[default]),我该如何正确注入?

最佳答案

如果您有两个不同的构造函数,则此问题与您在此处提出的问题完全不同。在这种情况下,实例化HelloBean时将调用默认构造函数(不带参数)。
要使用参数注入bean实例,您必须使用生产器方法,该方法将实例化HelloBean。可以在herehere中找到更多信息。

10-07 16:03