poniedziałek, 10 stycznia 2011

Wrażenia po lekturze specyfikacji "Contexts and Dependency Injection" (JSR-299)

Chęć przystąpienia do lektury specyfikacji "Contexts and Dependency Injection" stanowiła dla mnie doskonałą motywację, aby dowiedzieć się czegoś więcej na temat samego wstrzykiwania zależności (Dependency Injection), dotychczas zdawałem sobie jedynie sprawę
z faktu istnienia takiego wzorca. Szukając dobrego źródła wiedzy odnośnie DI natrafiłem na artykuł Martina Fowlera pt. "Inversion of Control Containers and the Dependency Injection pattern", dzięki któremu bardzo szybko pojąłem, z czym mam do czynienia.

Z zamiarem przygotowania się do zgłębienia tajników JSR-299
(już uzbrojony w wiedzę na temat DI) przeszedłem do lektury
"The Java EE 6 Tutorial"
, a mianowicie rozdziału 18 pt. "Introduction to Contexts and Dependency Injection for the Java EE Platform",
który był na tyle krótki, że zdecydowałem się sięgnąć jeszcze po artykuł Michała Ormana pt. "Kontekstowe komponenty w J2EE 6 - Wstrzykiwanie zależności". Posiadając elementarną wiedzę na temat poruszanych przez specyfikację CDI zagadnień, wraz z optymistycznym nastawieniem postanowiłem wydrukować omawiany dokument.

Lekturę specyfikacji JSR-299 ukończyłem wczoraj, zatem moje przemyślenia są jeszcze bardzo świeże, aczkolwiek przyznam,
że jestem pod wrażeniem możliwości prezentowanych przez CDI. Analizując zdobywaną wiedzę wielokrotnie starałem się wyobrazić sobie praktyczne zastosowania prezentowanych przez specyfikację rozwiązań, co skłoniło mnie do sformułowania tezy, że kluczem do poznania prawdziwych możliwości CDI jest przede wszystkim praktyka. Liczę, że moje entuzjastyczne nastawienie pogłębi się
wraz z przyszłym doświadczeniem praktycznym a spojrzenie na całość z perspektywy czasu przyniesie ze sobą kilka interesujących spostrzeżeń.

Możliwości CDI interesują mnie (zwłaszcza teraz po lekturze specyfikacji) szczególnie w odniesieniu do technologii JavaServer Faces w wersji 2.0. Mam zamiar przyjrzeć się temu duetowi nieco bliżej w ramach odskoczni od codziennych obowiązków, zwłaszcza tych akademickich w jakże niekomfortowym dla nas, studentów okresie zbliżającej się sesji.

Przydatne odnośniki:
  • Martin Fowler - Inversion of Control Containers and the Dependency Injection pattern
  • The Java EE 6 Tutorial - Chapter 18. Introduction to Contexts and Dependency Injection for the Java EE Platform
  • Michał Orman - Kontekstowe komponenty w J2EE 6 - Wstrzykiwanie zależności
  • JSR-299: Contexts and Dependency Injection for the Java EE platform