我正在定义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。可以在here和here中找到更多信息。