Spring Framework - skąd jego popularność?

Spring Framework jest jednym z najbardziej popularnych szkieletów tworzenia aplikacji dla języka Java (i nie tylko). Aktualnie posiada ona bardzo dużo modułów ułatwiających pisanie aplikacji webowych, korzystających z repozytoriów danych, transakcyjnych, potrzebujących zabezpieczeń autoryzacji i uwierzytelniania itd.. Szeroka gama rozwiązań problemów programistycznych oraz architektonicznych aplikacji została już przez nich rozwiązana, a programiści muszą zająć się tylko jej kofiguracją. Dlaczego Spring jest taki dobry? W czym tkwi sekret takiej popularyzacji?

Kontekst, czyli kontener IoC

Zacznę od krótkiego wytłumaczenia co to jest IoC (Inversion of Control), czyli odwrócenie sterowania.

Jest to sposób budowania architektury obiektowego programu. Polega on na użyciu zewnętrznego procesu, który dostarcza odpowiednie obiekty klas implementujących interfejs, który potrzebujemy lub używamy. W klasycznym podejściu do tematu obiekty są tworzone w klasie, którą używamy (w konstruktorze, w kodzie lub jako zmienna). W podejściu IoC klasa nie kontroluje, który obiekt zewnętrzny używa. Zajmuje się tym zewnętrzny proces, który steruje przepływem obiektów, wykonywanymi procesami itp..

Kontekst to właśnie taki kontener obiektów. To do niego wrzucane są obiekty, które mają różne zakresy życia. Umieszczone są w nim singletony, prototypy, obiekty o długości życia requesta, sesji lub sesji globalnej.

Bean, czyli właściwie co?

Ziarenka to są obiekty wielokrotnego użytku w Javie. W springu Beany to są właśnie obiekty umieszczone w kontekście, które są wykorzystywane wielokrotnie w zależności od długości życia obiektu. Mogą to być Repozytoria, Serwisy, Komponenty, DataSource, FactoryManager, TransactionManager itd..

Wzorce projektowe

Cały framework jest oparty o wzorce projektowe i praktyki dobrego programowania. Pozwala to na łatwą modułową pracę z bibliotekami. Użytkowanie klas oraz konfiguracji jest intuicyjne dla programisty. Spring ułatwia nam pracę ze wzorcami projektowymi. Posiada gotowe implementację niektórych z nich, które tylko musimy użyć.

Open-source

Projekt jest open-source. Wszyscy mogą zerknąć i grzebać w źródłach tego frameworku. Pozwala to autorom na szybkie znajdowanie błędów, poprawy algorytmów i ewentualnie przyjmowanie nowych modułów od użytkowników.

Wielomodułowość

Framework jest już ogromny. Na szczęście nie musimy importować wszystkiego. Potrzebujemy zająć się bazą danych importujemy spring-data. Potrzebujemy zabezpieczyć aplikację to spring-security. Uzyskujemy dzięki temu lekki framework, który pozwala nam na duże możliwości.

Dotyka on większość popularnych problemów przy tworzeniu aplikacji.

Spring posiada rozwiązania na większość problemów tworzenia aplikacji. Pozwala na wykorzystywanie gotowych rozwiązań. Programista nie musi przejmować się jak rozwiązać dany problem, ponieważ posiada metodę już sprawdzoną przez wielu użytkowników.

Podsumowując

Spring Framework ułatwia pracę nad projektami. Pozwala na łatwe zarządzanie złożonymi aplikacjami. Podałem tutaj same zalety tego frameworku. Owszem wszystko ma też drugą stronę medalu. Zaczynając pracę z Springiem, byłem przerażony jego złożonością i tym, że nie wiedziałem co tak na prawdę robię. Robił on wszystko za mnie i w pewnym momencie jak już coś się zepsuło nie miałem pojęcia co oznaczają te błędy. Mimo tego nie można zaprzeczyć, że osiągnął on duży sukces. Programiści, nawet o tym nie wiedzą, ale cieszą się, że ktoś go wymyślił. Pamiętajcie, nie ma sensu pisać coś co zostało już napisane. Warto jednak wiedzieć jak to działa i w jakim celu można to wykorzystać. Zapraszam więc do przeczytania o Spring Security oraz Spring Data JPA.

Comments

Popular posts from this blog

Why TDD is bad practice?

How correctly imitate dependencies?

Software development using Angular 5 with Spring Boot