Чи краща весна + сплячка замість EJB 3?


12

Я вважаю, що коли починаються нові проекти JEE (де ці технології застосовні), люди вважають за краще використовувати комбінацію Spring + Hibernate замість EJB 3.

Здається, молодшим програмістам навіть рекомендується піти на це замість EJB.

Це особиста перевага чи є для цього поважні причини? (наприклад, особисті шрами, створені за попередніми версіями EJB, які спричинили недовіру до EJB або розрив технологій порівняно з причинами продуктивності чи кривою навчання)?


2
Я майже думаю, що це історичне перенесення, тому що ejb був не таким хорошим, як весна + сплячка в один момент ... тепер я думаю, що в деяких випадках може бути зроблено справу з ejb ...
Rig

Відповіді:


11

Структури EJB 3+ насправді досить хороші, оскільки вони разом з JPA були відповіді на конфігуровані рамки стійкості для приміток, а також CDI, що дозволяє вводити залежність, налаштовану на анотацію. Ви також додаєте поверх цього Weld. Весна з іншого боку зараз лише наздоганяє гру з конфігурацією за допомогою анотацій.

Зважаючи на це, історичний ривок проти EJB1 та 2 не слід скидати з рахунків. Вони не просто не змогли вирішити проблеми з написанням корпоративних заявок, вони вражали невдачею. Це було повним невдачею з боку дизайнерів отримати імпульс щодо справжніх проблем, з якими стикаються підприємства та розробники веб-додатків, і, в свою чергу, пропонувати рішення, які вони насправді потрібні.

Додайте до цього недовіру, що в даний час існують серйозні перебої та нестабільності з поточним напрямком Java і відсутність віри в нинішніх управителів та власників старого Sun JVM, в Oracle. Багато людей не вірять, що Oracle вдосконалиться на Java і поведе напрямок, а також є страх, що Apache Software Foundation може просто кинути рушник. Все більше і більше людей шукають OpenJDK на майбутнє Java, але це просто не те, де це повинно бути для прийняття Enterprise.

Деякі бачать все це як запах смерті, оскільки корпоративні програми є головними причинами того, чому Java історично була мовою програмування №1 у світі так довго, як це було. Ось чому Microsoft набирає стільки позицій проти Java за допомогою технологій .NET.

Непідприємницькі розробники додатків Java все більше і більше звертаються до OpenJDK та інших фреймворків з відкритим кодом, щоб допомогти побудувати свої рішення, а деякі ніколи не озираються. Можна сказати, що це справа занадто пізно, щоб повернути JEE на перший план легітимності, навіть якщо технічно JEE може і справді стоїть на ногах з вашим порівнянним весняним додатком.


Добре узагальнений і розмовний марпл. Це поділяє і моє бачення EJB.
onigunn

4

EJB має багато багажу. Частина цього багажу походить від того, що він був орієнтований на неправильну аудиторію. Інша частина полягала в тому, що перші дві версії були суцільними дурнями.

Якщо ви подивитеся на оригінальні версії EJB, то розробник EJB міг створити пакується рішення, яке можна використовувати в будь-якому контейнері, сумісному з EJB. Для домашнього магазину цей рівень абстракції був непотрібним. Це було ідеальним рішенням зробити процвітаючий ринок для сторонніх постачальників компонентів EJB. Однак, постачальники контейнерів були надмірно ретельними у своєму маркетингу та виробляли тонни, продаючи свій товар як життєздатне рішення для щоденної розробки. Це було б еквівалентом створення всього коду програми як COM + компонентів.

Більш детальну інформацію про оригінальну специфікацію J2EE більшість залучених постачальників мали сервери CORBA і хотіли використовувати ці продукти вперед. Специфікація EJB була побудована на протоколі IIOP (фактично Java RMI, який був тонким шаром над IIOP). CORBA вже було відхилено через його складність, і EJB був просто переодягненим CORBA, тому він приніс із собою багато проблем, які мали CORBA. Насправді, абстракції EJB ускладнювали роботу, ніж чиста реалізація CORBA.

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

EJB 3 "прийняв" такий підхід. Але це все ще загальний компроміс, який не приносить великої користі. Досі не існує ринку сторонніх компонентів EJB, тому реально немає сенсу використовувати контейнер EJB для створення вашого рішення.

Довга коротка історія. Незважаючи на те, що EJB 3 є значним покращенням у порівнянні з першими двома ітераціями, він все ще не дає достатньо переваг, щоб перевершити витрати.


This would be the equivalent of building all of your application code as COM+ components. ... Як жахливо
maple_shaft

3
Точно;) Я працював з dotcom ще в 2001 році, який вирішив, що вони збираються перенести свою програму PERL (яка працює просто на розум) до J2EE. "Архітектори" для цих зусиль мали колективний місяць навчання J2EE (ніколи раніше не писали рядку Java). Моя улюблена цитата "Ну, я справді хороший у PERL. Збір Java - справа лише в вивченні нового синтаксису". Того дня я подав своє резюме Monster.
Майкл Браун
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.