Cześć!
Jak pewnie wiecie, aktywnym programistą Javy nie jestem już od jakiegoś czasu. Nie oznacza to że korzystam z niej czy czasem nie napiszę w niej czegoś, nie mniej jednak od 4 lat moim językiem wiodącym jest Python.
Nie zmienia to faktu że te kilka lat temu miałem przyjemność pracować we, wspomnianym w tytule, Springu – i dziś, trochę z perspektywy czasu, kilka wspomnień i przemyśleń.
Nim przejdziemy sobie do własnych wniosków, dobrze by było najpierw wyjaśnić czym jest framework i czym różni się on od biblioteki bo okazało się ostatnio, że sporo osób o tym nie wie.
Biblioteka jest wtedy kiedy to My wywołujemy jawnie jej kod. Framework jest wtedy kiedy to framework wywołuje nasz kod. Różnica którą przedstawiłem to tzn Inversion of Control – czyli odwrócone sterowanie. Przykładowo biblioteką będzie kod:
1 2 3 4 | from library import Library library_object = Library() library_object.process(args) |
a frameworkiem:
1 2 3 4 5 6 | from framework import events def event_hook(event) event.log.debug("Event %r !", event) events.core.bind(events.STRANGE_EVENT, event_hook) |
w pierwszym przykładzie jawnie wywołujemy kod biblioteki a w drugim “włączamy” nasz kod w ekosystem frameworka, co pozwala mu na użycie go, ale to od niego zależy kiedy to sie stanie.
Projekt ten jest już dość starym projektem, bo jego początki sięgają 2002 roku, kiedy to światło dzienne ujrzało jego pierwsze wydanie. W momencie pisania tego artykułu stabilną wersją jest wersja 5.1.6!
Architektura projektu jest modułowa i wygląda tak:
Moduł zawierający JDBC to moduł powalający na dostęp do danych i/lub ogólnie rozumianą integrację vis JMS (Java Message Service). Web to pakiet pozwalający na obsługę protokołów HTTP jak i protokołów w około niego.
To o czym warto wspomnieć, pisząc ten lekki artykuł to element Beans – bo to podstawa koncepcji całego frameworka. Jest on związany dość mocno z wstrzykiwaniem zależności i odwróconym sterowaniem (ang. Dependeny Injections, Inversion of Control) i definiuje się tym słowem obiekty które poddajemy procesom wstrzykiwania zależności. Prawie cała konfiguracja projektu opartego o Springa jest zasypana słowem „bean”.
Ze Springiem zetknąłem się na studiach i był to twór którego uruchomienie graniczyło z cudem. Dużo dziwnych błędów, nic nie chciało działać, każdy miał inne te błędy i ogólnie było z tym mnóstwo problemów. Krew, pot i łzy.
Dopiero w pracy udało mi się ogarnąć skąd te błędy i problemy powstawały i dopiero wtedy ten cały Spring zaczynał mieć jakiś większy sens.
Sama praca z nim, wynikająca oczywiście trochę z architektury którą narzucał, była już bardzo przyjemna. Kiedyś nawet tu napisałem wpis na temat programowania aspektowego w Spring 4. Fajny temat. Ciekawy.
atrząc wstecz mogę stwierdzić, że, mimo ciężkich początków, Spring jest ogromnie fajnym i kompleksowym rozwiązaniem. Sam nie jestem ekspertem od Springa, żeby pisać tu coś więcej poza subiektywnym odczuciem, ale ostatnio, przy okazji współpracy z Przemkiem Bykowskim, zobaczyłem, że gość potrafi robić ze Springiem cuda! Dodatkowo widać, że robi to z pasją i zaangażowaniem, bo jego blog i kanał YouTube wręcz emanuje pozytywną energią. Dlatego odsyłam Cię do gościa, który w tym temacie poprowadzi Cię najlepiej. Poza tym Przemek właśnie uruchomił kompleksowy materiał, który ułatwia, świetnie przedstawia i pozwala uczyć się Springa skutecznie i efektywnie – tutaj zostawiam link.
Oj daaawnoo mnie tu nie było. Ale wakacje to był czas dużej liczby intensywnych wyjazdów i tak naprawdę, dopiero jakoś… Read More
Cześć! Zapraszam na krótkie podsumowanie kwietnia. Wyjazd do Niemiec A dokładniej pod granicę z Francją. Chrześnica miała pierwszą komunię. Po… Read More
Ostatnio tygodnie były tak bardzo wypełnione, że nie udało mi się napisać nawet krótkiego podsumowanie. Więc dziś zbiorczo podsumuję luty… Read More
Zapraszam na krótkie podsumowanie miesiąca. Książki W styczniu przeczytałem "Homo Deus: Historia jutra". Książka łudząco podoba do wcześniejszej książki tego… Read More
Cześć! Zapraszam na podsumowanie roku 2023. Książki Zacznijmy od książek. W tym roku cel 35 książek nie został osiągnięty. Niemniej… Read More
Zapraszam na krótkie podsumowanie miesiąca. Książki W grudniu skończyłem czytać Mein Kampf. Nudna książka. Ciekawsze fragmenty można by było streścić… Read More