Spring Framework - przegląd
Spring to najpopularniejszy framework do tworzenia aplikacji dla języka Java dla przedsiębiorstw. Miliony programistów na całym świecie używa Spring Framework do tworzenia kodu o wysokiej wydajności, łatwego do testowania i wielokrotnego użytku.
Spring Framework to platforma Java typu open source. Został pierwotnie napisany przez Roda Johnsona i po raz pierwszy został wydany na licencji Apache 2.0 w czerwcu 2003 roku.
Wiosna jest lekka, jeśli chodzi o rozmiar i przezroczystość. Podstawowa wersja frameworka Spring to około 2MB.
Podstawowe funkcje Spring Framework można wykorzystać przy tworzeniu dowolnej aplikacji Java, ale istnieją rozszerzenia do tworzenia aplikacji internetowych na platformie Java EE. Spring ma na celu ułatwienie programowania J2EE i promuje dobre praktyki programistyczne, umożliwiając model programowania oparty na POJO.
Korzyści z używania Spring Framework
Poniżej znajduje się lista kilku wspaniałych korzyści płynących z używania Spring Framework -
Spring umożliwia programistom tworzenie aplikacji klasy korporacyjnej przy użyciu POJO. Zaletą używania tylko POJO jest to, że nie potrzebujesz produktu kontenera EJB, takiego jak serwer aplikacji, ale masz możliwość korzystania tylko z solidnego kontenera serwletów, takiego jak Tomcat lub jakiś produkt komercyjny.
Wiosna jest zorganizowana modułowo. Mimo że liczba pakietów i klas jest znaczna, musisz martwić się tylko o te, których potrzebujesz, a resztę zignorować.
Spring nie wymyśla na nowo koła, zamiast tego naprawdę wykorzystuje niektóre istniejące technologie, takie jak kilka ram ORM, ramy rejestrowania, zegary JEE, Quartz i JDK oraz inne technologie widoku.
Testowanie aplikacji napisanej w Spring jest proste, ponieważ kod zależny od środowiska jest przenoszony do tego frameworka. Ponadto, korzystając z POJO w stylu JavaBean, łatwiej jest używać wstrzykiwania zależności w celu wstrzykiwania danych testowych.
Framework sieciowy Springa to dobrze zaprojektowana platforma sieciowa MVC, która stanowi doskonałą alternatywę dla struktur internetowych, takich jak Struts lub innych zbyt rozbudowanych lub mniej popularnych platform internetowych.
Spring zapewnia wygodny interfejs API do tłumaczenia wyjątków specyficznych dla technologii (generowanych na przykład przez JDBC, Hibernate lub JDO) na spójne, niezaznaczone wyjątki.
Lekkie kontenery IoC wydają się być lekkie, zwłaszcza w porównaniu na przykład z kontenerami EJB. Jest to korzystne przy tworzeniu i wdrażaniu aplikacji na komputerach z ograniczoną pamięcią i zasobami procesora.
Spring zapewnia spójny interfejs zarządzania transakcjami, który można skalować w dół do transakcji lokalnej (na przykład przy użyciu pojedynczej bazy danych) i skalować w górę do transakcji globalnych (na przykład przy użyciu JTA).
Dependency Injection (DI)
Technologia, z którą Spring jest najbardziej utożsamiana, to Dependency Injection (DI)smak Odwrócenia Kontroli. PlikInversion of Control (IoC)to pojęcie ogólne, które można wyrazić na wiele różnych sposobów. Dependency Injection to tylko jeden konkretny przykład odwrócenia kontroli.
Pisząc złożoną aplikację Java, klasy aplikacji powinny być jak najbardziej niezależne od innych klas Java, aby zwiększyć możliwość ponownego użycia tych klas i testowania ich niezależnie od innych klas podczas testów jednostkowych. Dependency Injection pomaga w sklejaniu tych klas ze sobą i jednocześnie utrzymaniu ich niezależności.
Czym dokładnie jest wstrzykiwanie zależności? Spójrzmy na te dwa słowa oddzielnie. Tutaj część zależności przekłada się na skojarzenie między dwiema klasami. Na przykład klasa A jest zależna od klasy B. Teraz spójrzmy na drugą część, wtrysk. Wszystko to oznacza, że klasa B zostanie wstrzyknięta do klasy A przez IoC.
Wstrzykiwanie zależności może się zdarzyć podczas przekazywania parametrów do konstruktora lub po zakończeniu konstrukcji przy użyciu metod ustawiających. Ponieważ Dependency Injection jest sercem Spring Framework, wyjaśnimy tę koncepcję w osobnym rozdziale z odpowiednim przykładem.
Programowanie zorientowane na aspekty (AOP)
Jednym z kluczowych elementów Spring jest Aspect Oriented Programming (AOP)struktura. Nazywane są funkcje obejmujące wiele punktów aplikacjicross-cutting concernsi te przekrojowe kwestie są koncepcyjnie oddzielone od logiki biznesowej aplikacji. Istnieje wiele typowych dobrych przykładów aspektów, w tym rejestrowanie, deklaratywne transakcje, bezpieczeństwo, buforowanie itp.
Kluczową jednostką modułowości w OOP jest klasa, podczas gdy w AOP jednostką modułowości jest aspekt. DI pomaga oddzielić obiekty aplikacji od siebie, a AOP pomaga oddzielić zagadnienia związane z cięciami poprzecznymi od obiektów, na które one wpływają.
Moduł AOP Spring Framework zapewnia zorientowaną aspektowo implementację programowania, umożliwiającą definiowanie przechwytywaczy metod i punktów przecięcia w celu czystego oddzielenia kodu, który implementuje funkcje, które powinny być rozdzielone. Więcej o koncepcjach Spring AOP omówimy w osobnym rozdziale.