Ваши сотрудники могли видеть только EJB2 и раньше, что на самом деле были нечистые животные, что очень немногие люди пользуются помощью.
В EJB2 Для простейших вещей, имеющих очень инвазивные рамки, должны быть реализованы интерфейсы с безумными жизненными циклами, для которых разработчик должен был обеспечить реализацию, но не имеющую ничего общего с целями (бизнесом) разработчика. Необходимо было предоставить несколько таких артефактов.
Кроме того, каждый бит должен храниться в синхронизации с записями в очень подробном и трудно читаемом дескрипторе развертывания (файл XML). Как будто это было недостаточно оскорбительно для разработчика, специальные инструменты должны были использоваться для «улучшения» компонента и создания прокси-классов, скелетов и заглушек. Общие вещи OO, такие как наследование, не поддерживались. Там была какая-то инъекция, но странная, которая существовала для того, чтобы помещать вещи в своего рода карту (на самом деле директорию), связанную с каждым компонентом.
Оригинальная модель EJB 1 принудительно передала всю связь удаленно и все объекты, подлежащие распределению (EJB изначально считались только технологией удаленного доступа).Чтобы получить преимущества EJB, вы также были вынуждены распределять свою архитектуру, даже если это было совершенно не нужно.
Возможно, самым большим оскорблением была концепция Бина Сущности (не путать с сущностями JPA). Ошибки с этим типом бобов были настолько велики, что даже самые большие сторонники EJB в то время едва могли рекомендовать его кому-либо.
Тогда, как очень практичная проблема, совместимость между реализациями EJB была не очень хорошей, если не сказать больше. Особенно Entity Beans требовало огромного количества специфической конфигурации поставщика.
Для внедрения EJB необходимы серверы приложений с тяжелым весом (с установленным размером и требуемой памятью), которые были закрыты источником и были довольно дорогими (таким образом, чтобы компании не модернизировались или не переключались, потому что инвестиции должны были быть сначала оплачены назад). Я не помню, как многие люди писали о технологии в то время, и, насколько я помню, технология была в основном разведена командами продаж менеджерам крупных корпораций.
Неудивительно, что эта технология не понравилась среднему разработчику.
Солнце как раз вовремя осознало, что технология движется в совершенно неправильном направлении и совершает поворот на 180 °, и запустил массивный реинжиниринг.
В результате EJB 3 (2006) - очень разумный и легкий подход. Для реализации нет необходимых интерфейсов интерфейсов, нет требуемого XML, только один бит должен быть закодирован (просто простой POJO), повсеместно применяются стандартные значения по умолчанию (условная конфигурация), не требуются специальные инструменты (обычный javac будет do), и использование простых бобов локально на самом деле является общим случаем.
Сущность Бобы были настолько ошибочными, что их полностью отбросили и заменили на более здравый подход, рекомендованный TopLink и Hibernate среди других.
Объедините это с широким выбором бесплатных, легких и с открытым исходным кодом в сочетании со многими известными блоггерами, выступающими за технологию (например, Адам Бьен, Режа Рахман, Гэвин Кинг), и возвращение к популярности легко объяснить ,
Недавно было опубликовано несколько руководств по миграции «Весна-Ява», которые получили очень благоприятное количество голосов на разных новостных сайтах, и многие люди выражают свою поддержку EJB как очень хорошей технологии сейчас , Это было бы немыслимо полвека назад (когда EJB 3 был только что выпущен и еще не был очень известен).
Наиболее распространенной альтернативой EJB является весеннее ядро (весенние бобы). На данный момент я думаю, что нет никаких особых преимуществ Spring над EJB и наоборот. Эти две технологии очень похожи. Spring предлагает несколько дополнительных утилит, в то время как EJB концептуально более легкий (без XML). Оба преимущества несколько субъективны. Они, как правило, вдохновлены функциональностью друг друга, а кто немного впереди, часто зависит от того, какая технология в последний раз выпустила крупную новую версию.
Вопросы, заданные здесь ранее. Проверьте эти вопросы - [what-use-are-ejbs] (http://stackoverflow.com/questions/5579890/what-use-are-ejbs), [in-what-situation-are-ejbs-used] (http://stackoverflow.com/questions/4773927/in-what-situations-are-ejbs-used-are-they-required-in-websites-web-applicatio) и [spring-vs-ejb] (http: //stackoverflow.com/questions/1779169/spring-vs-ejb-can-spring-replace-ejb) – CoolBeans