Я бы сказал Да.
EJB очень просты в использовании bean-компонентов, которые значительно упрощают работу с JPA (Hibernate).
Без них вам нужно вручную отслеживать транзакции и очищать их в блоках try / catch / finally. Вам также необходимо вручную создать фабрику диспетчера сущностей при запуске приложения и затем сохранить ее где-нибудь. Это не очень сложно, но это утомительная работа, которая делает ваш код очень многословным.
С EJB все исчезает. Все, что вам нужно сделать, это что-то вроде этого:
@Stateless
public class MyService {
@PersistenceContext
private EntityManager entityManager;
public Customer getCustomer(Integer customerId) {
return entityManager.find(Customer.class, customerId);
}
}
Нет ручной обработки транзакций, нет кода для хранения и хранения менеджера сущностей.
В дополнение к этому, EJB также автоматически поточнобезопасны и экземпляры объединяются в пул. Это означает лучшую производительность и автоматическое регулирование, которое предотвращает перегрузку вашей системы.
В EJB есть еще несколько функций, но я лично обнаружил, что в большинстве случаев вы чаще всего используете что-то подобное.
EJB-компонентам не требуется никакой конфигурации (см. Минимальное 3-уровневое приложение Java EE, без какой-либо конфигурации XML ), и они поддерживаются многими серверами (Resin, GlassFish, TomEE, JBoss КАК). Вы также можете добавить EJB на серверы, которые еще не поддерживают его через OpenEJB, но гораздо проще начать с сервера, который его уже поддерживает.