Refleksja może być niebezpieczna - zobacz jak zniszczyć sobie życie
16 maja 2011, 20:10:28, Patryk DobrowolskiReflection API to mocarne narzędzie. Pozwala badać i modyfikować zachowanie obiektów w uruchomionym środowisku. Umożliwia dostęp do prywatnych pól i metod, co jest bardzo często wykorzystywane przez różnej maści frameworki i biblioteki. Czasami kilka linii z wykorzystaniem Reflection API pozwala zastąpić dziesiątki linii kodu i klas napisanych standardowym sposobem. Jego użycie zalecane jest doświadczonym programistom z dobrą znajomością Javy. I czasem może być niebezpieczne.
No Scope registered for scope 'session'
20 lutego 2011, 20:45:32, Patryk DobrowolskiZnowu kilka słów o Springu. Co się stanie, kiedy zdefiniujemy jakiś bean o zasięgu "session" i uruchomimy testy jednostkowe? Wiadomo, że zasięg "session" jest zarezerwowany dla aplikacji J2EE, związany jest z klasami ServletRequest i ServletResponse. Wiadomo również, że przy wykonywaniu testów jednostkowych, kontekst servletu nie jest dostępny. Co się więc stanie i jak temu zaradzić?
Kiedy uruchomimy testy jednostkowe przy takich założeniach, nie zawiedziemy się. Testy się nie wykonają, ale za to zostanie rzucony wyjątek:
Generyczne DAO dla Hibernate
12 lutego 2011, 16:58:32, Patryk DobrowolskiPrzeglądając kilka dni temu dokumentację J2EE i opisy wzorców projektowych zetknąłem się z sugestią, że DAO mogą być tworzone dynamicznie z wykorzystaniem wzorca Fabryka Abstrakcyjna. Ponieważ ostatnio zajmuję się tworzeniem warstwy DAO w swoim projekcie, pomyślałem że można spróbować takie coś zaimplementować. W zasadzie pewnie istnieje już cała tona tego typu rozwiązań, wątpię jednak, by cokolwiek z tego pasowało w 100% do moich wymagań.
Testy jednostkowe w Spring 3.0
10 lutego 2011, 13:47:14, Patryk DobrowolskiW notce zamieszczam krótki samouczek na temat tworzenia i konfiguracji transakcyjnych testów jednostkowych z wykorzystaniem Springa 3. Wskażę krok po kroku, co należy uczynić, aby uruchomić testy jednostkowe przy użyciu Mavena. Opiszę problemy, z którymi się spotkałem samemu konfigurując pierwszy test jednostkowy w Springu z wykorzystaniem Hibernate3 i MySQL. Testować będziemy serwis, a konkretnie DAO operujące na prostej tabeli zmapowanej do klasy Uzytkownik.
Spring 3.0.x i uszkodzone drzewo zależności
09 lutego 2011, 17:16:59, Patryk DobrowolskiOstatnio postanowiłem przyjrzeć się dokładniej Spring Framework w wersji 3.0.x. W związku z tym postanowiłem napisać prostą aplikację webową z wykorzystaniem najnowszych wersji używanych przeze mnie na co dzień frameworków, a także z zachowaniem wszystkich zasad programowania aplikacji webowych w Javie. W tym z użyciem znienawidzonych przez wielu testów jednostkowych. Przygotowałem wszystko zgodnie z dokumentacją Springa, ale przy uruchomieniu testów przy użyciu Mavena, wyskoczył następujący wyjątek:
W związku z planowanym cyklem na temat Mavena, postanowiłem, w ramach przygotowania, opisać pokrótce proces instalacji tego narzędzia. Maven został napisany w Javie, dlatego niezbędne będzie posiadanie zainstalowanej maszyny wirtualnej Javy. Tego procesu nie warto opisywać, jest to proste, a zakładam, że wszyscy, którzy zainteresowali się Mavenem, maszynę wirtualną posiadają. Zresztą, mało jest w tej chwili osób, które Javy nie zainstalowali, jako że jest ona niezbędna do uruchomienia wielu aplikacji i apletów umieszczonych na stronach WWW.