Внедрить EJB через метод установки

1

Я определяю 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) { // ... }

}
  1. Теперь, как я могу добавить GreetingBean в другой класс, также установив для HelloBean экземпляр HelloBean?

  2. Предположим, что у меня есть два разных конструктора для класса HelloBean (тот, у кого есть аргумент, например String, другой без [default]), как я могу правильно вставить?

  • 0
    Почему бы вам просто не поместить @Inject в атрибут helloBean?
  • 0
    Это не моя проблема. Предположим, что у меня есть два разных конструктора для класса HelloBean (один с аргументом, например, String, другой без), как я могу правильно внедрить либо?
Теги:
cdi
java-ee
ejb

1 ответ

2
Лучший ответ

Если у вас есть два разных конструктора, это совсем другой вопрос, который вы задаете здесь. В этом случае конструктор по умолчанию (без аргументов) будет вызываться при создании экземпляра HelloBean. Чтобы вставить экземпляр компонента с использованием аргументов, вы должны использовать метод-производитель, который будет создавать экземпляр HelloBean. Больше информации можно найти здесь и здесь.

  • 0
    И как я могу внедрить экземпляр HelloBean, используя аргументы?
  • 0
    Я обновил ответ.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню