Mar 02

Zacznę od tego, że Szanownemu Czytelnikowi należy się słowo wyjaśnień jak i przeprosin. W moim pierwotnym zamierzeniu artykuł ten traktować miał nie o Spring JavaConfig lecz o Google Guice czyli o ADIF od Google’a. ADIF (Another Dependency Injection Framework), czyli w rozwinięciu kolejny nie wiele wnoszący szkielet programistyczny zbudowany w oparciu o ideę wstrzykiwania zależności. Należy sobie jednak postawić pytanie, czy aby napewno Google Guice można zaliczyć do tego małoszacownego grona.
Nie mając tej pewności na własnej skórze postanowiłem się przekonać, co Google Guice jest mi w stanie zaoferować. Zbliżające się wielkimi krokami drugie pełne wydanie Google Soku wydawało się być dobrze dobranym ku temu momentem. Swoją edukację rozpocząłem od zapoznania się z wprowadzającą w temat leciwą już prezentacją przygotowaną przez Boba Lee. Następnie rozpoznałem dokumentację dostępną na oficjalnej stronie projektu, by za chwilę wziąć się już za własnoręczne eksperymentowanie z biblioteką.
Continue reading »
Oct 03
30 września SpringSource wypuścił finalna wersję swojego nowego dziecka. dm Server (wcześniej nazywany SpringSource Application Platform) pomyślnie zakończył fazę testów i został uznany za gotowy do pracy w środowisku produkcyjnym.
Continue reading »
Jul 04
Ze względu na fakt że zdecydowana większość aplikacji ma jako część funkcjonalności szeroko pojęte generowanie raportów – ponownie na warsztacie znalazł się Jasper. Tym razem jednak postaram się przedstawić sposób na proste tworzenie raportów wymagających nie tylko dynamicznej ilości wierszy, ale także i kolumn. Nie będę się skupiać na tematach omówionych w poprzednim artykule o Jasperze i omówię tylko to co jest tu ‘nowością’, łącznie z krótkim opisem użycia narzędzia iReport.
Continue reading »
Jul 02

Ostatnio na jednym z blogów około Springowych przeczytałem dosyć ciekawą informację. SpringSource, organizacja stojąca za naszym ulubionym Springiem, wypuściła wersję beta nowiuśkiego serwera aplikacji. “Chłopaki już raz zamieszali na scenie, może teraz też im się uda…” pomyślałem i zabrałem się za szukanie dalszych informacji. Oto co znalazłem po kilku dniach googlowania i czytania oraz po kolejnych kilkunastu dniach walki z nowoczesną technologią:
Continue reading »
Jun 30

Niespełna dwa lata temu zaczął powstawać nowy framework – Grails, służący do budowy aplikacji webowych oparty na skryptowym języku programowania – Groovy. Od niedawna Grails coraz częściej przyciąga uwagę, a głównym powodem jest fakt, że prostą aplikacje webową można wykonać kilkoma poleceniami z konsoli, no może jeszcze dwie, trzy linijki kodu. Myślę, że warto przyjrzeć się nowemu rozwiązaniu, które upraszcza oraz przyspiesza tak znacznie prace i pokazać jego możliwości.
Na początek powiem kilka słów o samym Groovy, który jest określany czasem nową, super wersją Javy. Jak można przypuszczać język ten przejął wiele od swojego „rodzica”, wśród podobieństw na pewno możemy wymienić taki sam model dziedziczenia, sposób tworzenia klas, pakietów, metod. Continue reading »
Jun 20

Jackrabbit jest najpopularniejszą darmową implementacją JCR dla technologii Java. Ale zacznijmy od początku, co to jest JCR? Java Content Repository jest repozytorium treści o strukturze drzewiastej, które dzięki zdolności definiowania typów węzłów i liści, bardzo rozszerza możliwości tego narzędzia. Mamy kilka wbudowanych typów (np. katalog, plik, link ) ale możemy również sami definiować nowe typy. Kolejnymi możliwościami są: tekstowe przeszukiwanie czy zarządzanie wersjami. JCR jest wiec idealnym narzędziem do budowania systemów zarządzania treścią. W artykule jako przykład stworzymy aplikację, która będzie korzystać z możliwości wersjonowania.
Continue reading »
May 30
Jasper Reports jest to biblioteka pozwalająca na generowanie raportów. Jej głównym założeniem jest wsparcie dla tworzenia gotowych do druku dokumentów. Biblioteka jest w całości napisana w Javie, pozwala to na użycie jej w dowolnej aplikacji Javy. Jasper oferuje eksport raportów do szeregu popularnych formatów takich jak: PDF, XML, HTML, CSV, XLS, RTF, TXT. W tym artykule zajmę się wykorzystaniem go do wygenerowania raportu w połączeniu ze Spring’iem.
Continue reading »
May 12

Adnotacje. Wprowadzone w Javie 5, miały usprawnić i ułatwić programowanie. Wszyscy o nich wiemy, wszyscy z nich korzystamy. Korzystamy, prawda? Niestety… Często jedyna adnotacją, którą można znaleźć w źródłach wielu aplikacji jest @SupressWarnings :)
W Springu adnotacje pojawiły się jakiś czas temu. Nie używało się ich za często bo i niewiele robiły. Najczęściej stosowane były @Transactional oraz @Required. Dopiero wyjście Springa 2.5 znacząco zmieniło sytuacje. W końcu można było praktycznie zrezygnować z XML’a na rzecz metadanych. Kiedy pisałem ten artykuł moim celem stało sie skonfigurowanie aplikacji przy absolutnie minimalnej liczbie plików konfiguracyjnych i wydaje mi się, ze zadanie osiągnałem :)
Continue reading »
Mar 16
Słowem wstępu
Mroczna historia na dobry początek
Przed monitorem jednego z terminali Biblioteki Uniwersyteckiej spędzałem kolejną dłużącą się bez końca godzinę. Na zewnątrz niebo nabierało coraz ciemniejszych barw. Poszukiwałem ciekawego tematu na nowy artykuł na j2ee.pl.
Wielogodzinna praca powodowała, że zaczynałem odczuwać nadchodzące zmęczenie. Postanowiłem podarować sobie chwilę odpoczynku od zagadnień IT. Nierozsądnie wpisałem w pasku przeglądarki tvn24.pl – strona chwilę się wczytywała. Wziąłem ostatni już łyk Red Bulla. Jak przez mgłę spoglądałem na treści atakujące moją bezbronną świadomość. W prawym dolnym rogu ujrzałem umieszczoną sondę. Zupełnie bez powodu ogarnęła mnie nagła, nieodparta ochota na to, żeby zagłosować… Lecz nagle poczułem na skórze powiew mroźnego powietrza, który w parnej sali Biblioteki wydawał się pojawić jakby znikąd. To co działo się następnie nie sposób opisać jakimikolwiek słowami. Przez chwilę zdawało mi się, że tuż za moimi plecami bezgłośnie niczym rycerz ciemności przemknął Premier Jarosław Kaczyński cenzurując swym wzrokiem oglądane przeze mnie treści. Modliłem się, żeby to wszystko nie było prawdą – nie chciałem, żeby Premier zobaczył oglądania jakich pornograficznych treści dopuszczają się studenci. Wciąż oszołomiony tym, co wydarzyło się przed chwilą postanowiłem zaczerpnąć świeżego powietrza.
Continue reading »
Feb 17
Spring | autor: Michał Porzożyński

Od pewnego już czasu, coraz dokładniej poznaje framework JBoss Seam z jego zaletami oraz wadami. Jak wiadomo siła Seam’a tkwi w jego znakomitej integracji z różnymi technologiami i bibliotekami. Jedną z nich jest Hibernate Validator, czyli JBossowa implementacja JSR 303 – Bean Validation. Chodzi mniej więcej o to, aby pewne informacje dotyczące walidacji nie musiały być zapisywane poza klasą walidowaną. Szybko doszedłem do wniosku, że taką funkcjonalność chce mieć także w aplikacjach opartych o Spring Framework.
Continue reading »
Sep 20

Prawie każda książka po którą mamy okazję sięgnąć pozostawia po sobie pewne, trudne do zatarcia skojarzenie, czy to z miejscem, czy też jakąś specyficzną okolicznością. I dzieje się tak niezależnie od tego, czy jest to dzieło najnowsze Jerzego Pilcha, czy też co bardziej prawdopodobne ;) podręcznik do Spring‘a.
Książka, którą chciałbym tutaj przedstawić kojarzyła mi się będzie niezmiennie już chyba z pociągiem InterCity relacji Kraków-Warszawa, Warszawa-Kraków. A to dlatego, że w przeciągu ostatnich miesięcy miałem okazje, a co za tym idzie niezmierną przyjemność, coweekendowego rozkoszowania się podróżami taborem Polskich Kolei Państwowych. Moją i tak ogromną radość potęgowała dodatkowo okoliczność posiadania miejscówki dająca mi z niczym nieporównywalną satysfakcję łypania z pobłażliwością na osoby podróżujące bez takowej. Niekiedy niestety zdarzało się, z różnych ZALEŻNYCH ode mnie względów, że to nie ja łypałem, ale łypany przez innych byłem. Lecz o tych pięknych chwilach spędzonych w najbliższym sąsiedztwie toalety wolałbym jak najszybciej zapomnieć. Dla dopełnienia wspomnę jeszcze jedynie, że przy okazji udało mi się na własne oczy zobaczyć najsłynniejszy dworzec w Polsce, a mianowicie (po co ja to mówię – przecież pewnie wiecie) Włoszczowa Płn. Zdjęć, czy też innych nagrań, na potwierdzenie swojej prawdomówności niestety nie posiadam, co nie ukrywam niezmiernie mnie smuci.
Podczas tych podróży globtroterskich pociągami pośpiesznymi-opóźnionymi wiernym towarzyszem pozostawała mi zawsze książka. Ostatnim czasem w ręce wpadła mi, nie całkiem z resztą przypadkiem, publikacja Anila Hemrajaniego pod tytułem Java. Tworzenie aplikacji sieciowych za pomocą Springa, Hibernate i Eclipse. Nie ukrywam, że do książki od początku podchodziłem z pewnym uzasadnionym sceptycyzmem, ale także z nutką nadziei. Continue reading »
Aug 29

Acegi jest to narzędzie służące zapewnieniu bezpieczeństwa w aplikacjach korporacyjnych. Zapewnia wszechstronne mechanizmy uwierzytelniania i autoryzacji.
Continue reading »
Aug 14
Wstęp teoretyczny
Programowanie aspektowe (aspect-oriented programming, AOP) to metodologia tworzenia oprogramowania polegająca na rozdzieleniu programu na części w jak największym stopniu niezwiązane funkcjonalnie. Autorem koncepcji jest Grzegorz Kiczales i jego zespół z firmy Xerox PARC. Stworzyli oni pierwszy i wciąż najbardziej popularny aspektowy język programowania: AspectJ.
Przyczyna zapotrzebowania
Każde realizowane zagadnienie pociąga za sobą w praktyce potrzebę realizacji zagadnień pobocznych. Można je traktować jako niefunkcjonalne wymagania względem systemu, których implementacja powoduje rozsianie kodu w wielu miejscach modelu funkcjonalnego. Najczęściej są to kwestie logowania, bezpieczeństwa, spójności transakcyjnej, autoryzacji, synchronizacji wielowątkowej i wiele innych. Jest to zjawisko wynikające ze złożoności wymagań klienta. Zagadnienia te są w dużym stopniu rozłączne pomiędzy sobą pod względem funkcjonalnym. Aby je zrealizować programista musi poprzeplatać ich implementacje, co czyni kod mniej czytelnym, bardziej podatnym na błędy, trudniejszym w modyfikacji.
Programowanie aspektowe zapobiega tym negatywnym skutkom, oddzielając fizycznie kod każdego zagadnienia poprzez umieszczenie ich w oddzielnych aspektach i logiczne zdefiniowanie punktów interakcji pomiędzy nimi.
Continue reading »
Jan 13
Od pewnego czasu wykonujemy w dwuosobowym zespole projekt w oparciu o Spring, Hibernate i JSF. Po drodze napotykamy dość często na różnego rodzaju problemy. Jednym z nich był dostęp z poziomu klasy implementującej jsf’owy interfejs Validator do zdefiniowanych w kontekście springowym beanów. Początkowo chciałem zadeklarować klasę walidatora w faces-config oraz w applicationContext ale tym sposobem tworzone są dwie niemające nic ze sobą wspólnego instancje interesującej mnie klasy. Drugie rozwiązanie okazało się już lepsze: standardowo korzystamy z org.springframework.web.jsf.DelegatingVariableResolver (którego deklarujemy w faces-config). W metodzie validate(..) natomiast korzystamy z takiej oto mniej więcej linijki w celu dostępu do beana:
ServiceLocator serviceLocator =
(ServiceLocator) facesContext.getApplication().
createValueBinding("#{serviceLocator}").getValue(facesContext);
Gdzie ServiceLocator to nazwa klasy a serviceLocator to nazwa springowego bean’a.
Bardzo możliwe, że da się to zrobić w bardziej elegancki sposób za pomocą biblioteki jsf-spring. Niestety projekt ten w tym momencie właściwie nie posiada dokumentacji, a ja nie posiadam czasu na wnioskowanie co i jak z api. Jeśli ktoś używał tego dzieła, proszę o jakieś info.
Recent Comments