Ответ 1
См. этот ответ для получения некоторой информации по обоим вопросам.
В этом ответе подчеркивается, что:
- EJBs и CDI beans являются проксимированными компонентами, объект, который вы получаете, является подделкой, реальный объект скрыт, и именно так добавляются сервисы: caller- > proxy- > services- > realObject
- CDI и EJB фактически являются такими же, как таковые, смешайте их свободно. То, что вы используете, зависит от того, что вы пытаетесь сделать. Я имею тенденцию использовать CDI, если мне не нужен один из элементов, перечисленных в этом ответе. Затем я просто обновляю или добавляю новый bean.
Обратите внимание, что я пропустил в этом ответе всю концепцию @MessageDriven
.
MessageDriven Beans
Очень интересно, что вы помещаете JMS/Connector в одну строку, точно так же, как они реализованы. Управляемый сообщениями beans (MDB) на самом деле должен называться "Connector-Driven Beans", поскольку все коммуникации и жизненный цикл MDB фактически привязаны к спецификации архитектуры коннектора и не имеют ничего общего с JMS напрямую - JMS - это просто единственное, что когда-либо видели люди Connector. Там есть большой потенциал. Надеемся, мы увидим некоторые улучшения в Java EE 7.