EJB 3 in Action
11 maja 2006 roku JSR 244 i jego pochodne uzyskały status Final Release i pojawiło nam się JEE 5.0. Blisko rok później, ukazała się długo oczekiwana książka wydawnictwa Manning traktująca o trzonie “piątki”. EJB 3 in Action jest jedną z pierwszych książek o Enterprise JavaBeans w wersji trzeciej, a także o nowym sposobie dostępu do baz danych – Java Persistence API 1.0.
Książka ukazała się na anglojęzycznych rynkach 15 kwietnia 2007 roku. Jest to całkiem obszerna “cegła” licząca 712 stron. Wydana prawie idealnie: świetna, dosyć duża czcionka; spore odstępy między liniami; dobrej jakości papier. Od razu rzuca nam się to w oczy, gdyż znacząco kontrastuje z polskimi wydawnictwami, gdzie literki są małe, a papier słaby. Książka podzielona została na 5 części:
- Overview of the EJB landscape
- Building business logic with EJB 3
- Diving into the Java Persistence API (JPA)
- Putting EJB 3 into action
- Migration and interoperability issues
Razem daje nam to 16, na tyle krótkich, rozdziałów, że każdy z nich przeczytać można jednym tchem w przeciągu 2 – 3 godzin.
Część pierwsza to spojrzenie na EJB z wysokości 20000 stóp oraz pierwsza aplikacja. Krótki opis tego z czym właściwie mamy do czynienia, opis poszczególnych typów beanów oraz klas entity. Znajdziemy tutaj też różnice, jakie pojawiły sie w stosunku do wersji 2.1 oraz poznamy podstawowe wykorzystywane adnotacje.
Pierwsze dwa akapity książki, opowiadają nam historie chłopca imieniem Sadhu, któremu Bóg podarował trzy życzenia. Chłopiec poprosił o trzy reinkarnacje: w biedronkę (żeby każdy na świecie podziwiał go za jego piękno i wybaczył to, że nic nie robi); w słonia (aby mógł zjeść ogromną ilość jedzenia i nie zostać wyśmianym); w krowę (aby być kochanym przez wszystkich i dla wszystkich użytecznym). Okazało się, że autorzy EJB 3 in Action widzą analogię pomiędzy reinkarnacją chłopca i reinkarnacją Enterprise JavaBeans. Wszyscy zachwycali się innowacjami EJB 1, ale także narzekali na jego duże ograniczenia. EJB 2 jest ciężkie jak słoń, a EJB 3 jest użyteczne jak krowa, która karmi nas wszystkich swoim mlekiem. Fajne ! ;)
Druga część książki przenosi nas w głębiny komponentów sesyjnych (tych stateless i tych stateful) oraz komponentów sterowanych komunikatami (MDB). Poznajemy cykl życia beanów oraz szczegółowo wnikamy w adnotacje. Wkraczamy w zaawansowany świat EJB: wstrzykiwanie zależności, JNDI, interceptory (czyli AOP w świecie EJB), transakcje, bezpieczeństwo i timer’y. Pojawiają się także wzmianki o wydajności. Wszystko wytłumaczone bardzo przystępnym językiem. Tutaj należy też wspomnieć, że mimo, iż książka jest napisana w języku angielskim, to stosowane słownictwo będzie zrozumiałe dla każdego, kto choć kilkanaście godzin spędził nad jakąś dokumentacją techniczną z zakresu j2ee.
Część trzecia to meandry JPA. Znajdziemy w niej dokładny opis tego, co można osiągnąć w świecie odwzorowań obiektowo – relacyjnych (nowości w Java Enterprise Edition 5.0) oraz jak w jaki sposób tego dokonać. Krok po kroku poznajemy zasady tworzenia aplikacji bazodanowych: modelowanie dziedziny, mapowanie obiektowo – relacyjne, manipulowanie danymi za pomocą EntityManager i na sam koniec API zapytań oraz język JPQL. Książka przedstawia w sposób wyczerpujący poruszaną tutaj tematykę.
Czwarta część książki wydaje mi się najciekawsza i konieczność jej przeczytania jest właściwie niezbędna. To w tym właśnie miejscu nauczymy się “sklejać” wiadomości z dwóch poprzednich części w jedną spójną całość oraz przeistaczać ją w działającą(!) aplikację.
Z rozdziału 12. dowiadujemy się jak należy zintegrować EJB z innymi warstwami aplikacji. Poznajemy wzorce projektowe:
- Fasadę – pozwalającą ograniczyć ilość wywołań kierowanych z warstwy webowej do komponentów EJB, a co za tym idzie zwiększyć wydajność całej aplikacji;
- EAO – czyli stare dobre Data Access Object lecz w nowej wersji z której, ze względu na to, iż obiekty Entity mają teraz charakter POJO, usunięto DTO/VO.
W tej części książki poruszane są także tematy związane z wydajnością oraz skalowalnością (radzenie sobie z “lockami” na obiektach entity, tworzenie klastrów itp.). Mój entuzjazm związany z tą częścią publikacji wiąże się także z faktem, że w książce Head First: EJB brakowało tego typu informacji, co zawsze rodziło we mnie agresje ;)
Ostatnia część EJB3 in Action to informacje na temat migracji z EJB 2 do EJB 3, wystawianie metod EJB 3 w postaci WebSerwice’u oraz integracja EJB 3/JPA ze Spring’iem. Ze względu, że nie czytałem tego wszystkiego zbyt dokładnie pozwolę sobie porzucić dalsze dywagację na ten temat ;)
W książce znajdziemy także 5 “dodatków”:
- Omówienie RMI i JNDI
- Wstęp do relacyjnych baz danych
- Dokładny opis wszystkich adnotacji
- Dokładny opis deskryptorów
- Instalacja i konfiguracja serwera Glassfish
Podsumowując z książki jestem zadowolony nawet bardziej niż bardzo. Cały czas przewijają się przez nią “Best practices”, które pomagają w rozwiązywaniu niejednego problemu napotkanego na naszej drodze. Książkę można nabyć poprzez serwis amazon.com za $45, lub już za $25,49 od jednego z partnerów. Osobiście wybrałem drugą z wymienionych opcji i do tej pory cieszę się z zaoszczędzonych 20 dolarów :)
Moja ocena EJB 3 in Action to 9/10 !








August 7th, 2007 at 21:24
Dodam tylko, że korektę wykonał Michał Mally, za co bardzo dziękuje :)