Преимущества и недостатки использования контейнера, управляемого EJB - PullRequest
0 голосов
/ 20 марта 2011

Я создаю приложение javaee6, которое обрабатывает smses. в основном smses приходят через smpp в очередь JMS и затем обрабатываются моим приложением.

Я использую Glassfish v3, я решил, что собираюсь использовать EJB для бизнес-логики. Вот структура моего приложения

Веб-приложение Dashboard - JSF 2, Бизнес Логика - EJB 3, Приемник сообщений - JMS, Постоянный провайдер - JPA (eclipselink).

Я никогда раньше не использовал EJB, сейчас я использую контейнер для управления своими сессионными компонентами. Я просто хочу знать, есть ли какие-либо недостатки использования EJB (контейнер должен быть конкретным), а не просто вызова базовых классов Java из bean-компонентов JSF Managed.

Система, которую я создаю, должна быть очень масштабируемой. Здесь не так много сложной бизнес-логики. использовать ejbs излишне?

Ответы [ 3 ]

1 голос
/ 21 марта 2011

Я не вижу никаких недостатков в использовании EJB.

С EJB вы можете: - EJB 3 очень прост в разработке - транзакции управляются контейнером, распределенные транзакции - зависимость инъекции и IoC. - распределите ваши бобы в кластере - вы не знаете об инфраструктуре - аутентификация и авторизация (роли с JAAS) - EJBs являются переносимыми и масштабируемыми. Вы не будете привязаны к продавцу. - и многие другие ...

0 голосов
/ 10 апреля 2011

Недостаток управляемого EJB контейнера заключается в том, что если мы хотим вставить несколько строк в таблицу и хотим, чтобы все строки были вставлены или ни одной ...

В этом случае мы не можем откатить нашу транзакцию ...

0 голосов
/ 21 марта 2011

Основное преимущество, которое позволяет контейнеру управлять транзакциями, а EJB имеет очень надежную настройку, позволяющую настраивать уровни транзакций для каждого компонента и между компонентами.

В очень редких случаях вам захочетсяна самом деле управлять транзакциями самостоятельно.Если вы действительно рассматриваете возможность управления транзакциями самостоятельно, я бы порекомендовал сначала попытаться изменить архитектуру вашего решения, чтобы вы могли позволить Контейнеру управлять транзакциями и только в крайнем случае управлять ими самостоятельно.

...