Eager / автозагрузка EJB / нагрузки EJB при запуске (на JBoss)

EJB кажутся загруженными лениво – при каждом доступе.

Однако я хочу их инициализировать с нетерпением – т.е. всякий раз, когда запускается контейнер. Как это достигается (в частности, в JBoss)

Эта тема дает некоторые подсказки, но не совсем удовлетворительна.

Начиная с EJB 3.1, однопоточные бобы могут быть уведомлены о запуске и остановке модуля:

@Singleton @Startup public class StartupBean { @PostConstruct private void postConstruct() { /* ... */ } @PreDestroy private void preDestroy() { /* ... */ } } 

До EJB 3.1 нет стандартного решения EJB. Я бы предложил добавить WAR к вашему EAR и использовать servlet-context-listener.

В соответствии с образцами Адама Бина «Real World Java EE Patterns» – «Переосмысление лучших практик» (см. Краткое описание шаблонов ) и шаблона Service Starter, это действительно так, как предлагает bkail

  • с Java EE 6 = EJB 3.1 использовать @Singleton с @Startup (и, возможно, также с @DependsOn)
  • до этого единственным стандартным и переносимым способом является использование API сервлета, например, HttpServlet, запускающего EJB в его методе init (), и загрузка при запуске, установленная в 1 в web.xml.
  • Как установить JBoss AS / WildFly Server в Eclipse для Java EE
  • JBoss vs Tomcat снова
  • Как включить TLS 1.2 в Java 7
  • Контейнер Jboss Java EE и ExecutorService
  • Путь JNDI Tomcat против Jboss
  • Использование параметра HeapDumpOnOutOfMemoryError для дампа кучи для JBoss
  • Как изменить конечную точку URL-адреса webservice?
  • Горячее развертывание на JBoss - как мне заставить JBoss «видеть» изменение?
  • Давайте будем гением компьютера.