Завръщането на Супермен - EJB 3.1 на хоризонта
24.03.2008 Иван Давидов
След идването на EJB 3.0 си помислих, че няма начин боравенето с EJB класове и обекти да бъде по-просто. Както най-често се случва - оказа се, че съм грешал.
Умните хора, които работят по спецификацията на EJB 3.1 (JSR 318) са решили да изненадат Java разработчиците с много интересни и най-вече полезни подобрения. Ще спомена само някои от тях, които на мен ми направиха много силно впечатление:
- Пакетиране на EJB компоненти в WAR. В началото помислих, че имам нужда от очила. Как така EJB ще “живее” в WAR? Оказа се, че Web контейнерът няма да предоставя EJB API, а просто се дава възможност EJB компонентите да се пакетират в рамките на WAR. След това, по време на deploy процеса, EJB контейнерът поема управлението на EJB компонентите. Чисто и просто премахване на една изкуствена зависимост по време на пакетиране, която преди ни задължаваше WAR и EJB да бъдат пакетирани заедно в един общ EAR.
- Stateful EJB ще могат да се expose-ват като WebService. По този начин с един куршум имаме два заека - пишем си бизнес методите както до сега, правим уеб услуга за минимално време (още една анотация) и освен това уеб услугата поддържа състояние, т.е. печелим от session management модела на Stateful EJB.
- Поддръжка на събития при пускане и спиране на приложението. Един workaround за това е да се направи SAR, в който изкуствено да се опише поведението, което желаем да постигнем при пускане на приложението. Хубаво е, че сега това “поведение” ще бъде конкретно описано и специфицирано и няма да има нужда хората да мислят какви ли не триковетрикове.
- Асинхронни методи в Stateful EJB. На теория ако един потребител достъпи Stateful EJB обект и извика метод, който се изпълнява много бавно, тогава клиентът не може да извика друг метод в рамките на същия Stateful EJB обект, тъй като Thread Lock обекта още не е пуснат и ще се освободи чак след свършване на изпълнението на предишния метод. С дефиниране на асинхронни методи за изпълнение в рамките на Stateful EJB обектите вече имаме компромис, койт опозволява да се мисли още по-продуктивно и маха някои бариери.
Естествено, има още много подобрения спрямо предходната EJB спецификация, но както казах - това, което написах са подобренията, които мен ме впечатлиха най-много. Наистина страхотни улеснения! Който все още не е мигрирал към EJB 3.x е крайно време да се замисли! ![]()
Намира се в категории: Всичко, Размисли, Технологии | Няма коментари »