Я определяю 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
?
Предположим, что у меня есть два разных конструктора для класса HelloBean
(тот, у кого есть аргумент, например String
, другой без [default]), как я могу правильно вставить?
Если у вас есть два разных конструктора, это совсем другой вопрос, который вы задаете здесь. В этом случае конструктор по умолчанию (без аргументов) будет вызываться при создании экземпляра HelloBean. Чтобы вставить экземпляр компонента с использованием аргументов, вы должны использовать метод-производитель, который будет создавать экземпляр HelloBean. Больше информации можно найти здесь и здесь.