Spring to framework Java, który używa kontenera do tworzenia i zarządzania różnymi komponentami aplikacji. Kontener (często nazywany kontekstem aplikacji Spring) łączy różne komponenty w aplikacji przy użyciu wzorca projektowego wstrzykiwania zależności (DI). DI pozwala na użycie obiektu w klasie zależnej, bez tworzenia jego nowej instancji w klasie zależnej.
Tak więc, zamiast pozwalać każdemu komponentowi na tworzenie nowych instancji tych, na których polegają, kontener Springa tworzy i utrzymuje instancję każdego z hostowanych komponentów. Ten kontener następnie wstrzykuje instancję komponentu do wszystkich innych komponentów, które go potrzebują.
Odkrywanie podstawowych funkcji Springa
Framework Spring ma około 20 dobrze zorganizowanych modułów, które odgrywają integralną rolę w możliwości tworzenia aplikacji i zarządzania nimi. W oparciu o podstawowe cechy tych modułów można je podzielić na pięć kategorii:
- Pojemnik rdzenia
- Dostęp do danych/integracja
- Sieć
- Programowanie zorientowane aspektowo i oprzyrządowanie
- Test
Wiosenny pojemnik
Spring używa kontenera do tworzenia i zarządzania różnymi komponentami (nazywanymi fasolami) aplikacji. Kontener jest dostępny za pośrednictwem interfejsu ApplicationContext Springa, który umożliwia tworzenie instancji, konfigurowanie i składanie obiektów (lub komponentów bean). Kontener Springa może pełnić swoją funkcję dzięki pomocy metadanych konfiguracyjnych.
Te metadane konfiguracyjne mogą mieć kilka różnych form, ale ich typową postacią jest XML. Oprócz fasoli kontener Springa składa się również z rdzenia, kontekstu i modułu wyrażenia.
Wiosenny dostęp/integracja danych
Aspekt dostępu do danych/integracji frameworku Spring składa się z kilku podmodułów: JDBC, ORM, OXM, JMS i transakcja. Moduły te współpracują ze sobą w celu zarządzania wszelkimi danymi używanymi przez aplikację.
Wiosenna sieć
Funkcja internetowa aplikacji Spring zapewnia zorientowaną na sieć integrację Twojej aplikacji. Oprócz integracji zorientowanej na sieć, Spring udostępnia moduł serwletu sieciowego. Moduł serwletu WWW jest odpowiedzialny za Springa implementacja modelu-widok-kontrolera (MVC)..
Wiosenne programowanie zorientowane na aspekty (AOP)
Framework AOP Springa to kolejny z jego kluczowych komponentów. Chociaż framework AOP nie jest kluczowy dla funkcji kontenera Springa, uzupełnia kontener, będąc wydajnym rozwiązaniem oprogramowania pośredniego. Jedną z kluczowych cech platformy AOP jest to, że zapewnia deklaratywne usługi korporacyjne dla Twojej aplikacji, a mianowicie zarządzanie transakcjami deklaracji.
Deklaratywne zarządzanie transakcjami jest pożądanym podejściem do tworzenia oprogramowania, ponieważ ma minimalny wpływ na kod aplikacji.
Wiosenna próba
Spring przywiązuje dużą wagę do testowania aplikacji. Jego moduł testowy obsługuje testy integracyjne i testy jednostkowe przy użyciu JUnit lub TestNG.
Tworzenie aplikacji Spring
Istnieje kilka sposobów na utworzenie szablonu dla nowej aplikacji Spring. Różne podejścia obejmują:
- Z aplikacji internetowej (lub Spring Initializr) na oficjalnej stronie Springa.
- Ręczne tworzenie struktury katalogów projektu i specyfikacji kompilacji.
- Z pakietem narzędzi Spring.
- Z wiersza poleceń z interfejsem wiersza poleceń Spring Boot.
- Z Eclipse IDE.
- Z IntelliJ IDEA IDE.
Najpopularniejszym podejściem jest Spring Initializr:
Jak widać na powyższym obrazku, będziesz musiał podjąć kilka decyzji. Pierwszy to typ projektu, który chcesz zainicjować. Spring udostępnia trzy opcje: Gradle dla Groovy, Gradle dla Kotlin lub Maven. Ta przykładowa aplikacja użyje projektu Maven.
Inne opcje, które musisz wybrać, to język (Java), wersja Spring Boot, której chcesz użyć, oraz metadane projektu. Spring ma już fikcyjne dane w swoich pięciu polach, które pomogą ci stworzyć przykładową aplikację. Będziesz jednak musiał zaktualizować te pola danymi specyficznymi dla projektu, ponieważ te metadane opisują twoją aplikację Spring, w tym fasolę Spring i jej metody.
Następnie musisz wybrać opakowanie, w którym chcesz umieścić swoje pliki (słoik lub wojna). Następnie możesz wybrać wersję Java, którą masz na swoim urządzeniu. Ostateczną decyzją, którą musisz podjąć, jest rodzaj zależności, które chcesz zastosować w swojej aplikacji.
Spring udostępnia kilka zależności, których można użyć do dodania właściwości do aplikacji. Aby dodać nową zależność do swojej aplikacji, po prostu kliknij przycisk dodawania zależności po prawej stronie Spring Initializr. Ta czynność spowoduje wygenerowanie następującej nakładki na ekranie:
W przypadku tej przykładowej aplikacji jedyną potrzebną zależnością jest Spring Web. Ta zależność umożliwia budowanie aplikacji internetowych przy użyciu architektury MVC. Po wybraniu wszystkich zależności, których chcesz użyć w swojej aplikacji, przejdź do generowania kliknięć. Spowoduje to pobranie szablonu projektu.
Teraz masz projekt Spring Boot (który jest jedną z bibliotek Springa). Ostatnim krokiem jest zaimportowanie projektu do preferowanego IDE. Twój projekt wiosenny będzie miał następującą strukturę projektu:
To jest normalna struktura projektu Maven i jest kilka ważnych plików, z którymi musisz się zapoznać.
- Pom.xml: zawiera dane konfiguracyjne aplikacji Spring.
- OnlineShopaholicsApplication.java: To jest główna klasa Spring Boot, która wykonuje aplikację.
- OnlineShopaholicsApplicationTest.java: To jest Test JUnit klasa, która zapewnia prawidłowe ładowanie kontekstu (lub kontenera) aplikacji Spring.
Uruchamianie aplikacji Spring
Klasa bootstrap Springa, którą w tym przypadku jest klasa OnlineShopaholicsApplication, ma następujący kod początkowy:
pakiet com.onlineshopaholics;
importorg.wiosna Framework.uruchomić.SpringApplication;
importorg.wiosna Framework.uruchomić.automatyczna konfiguracja.SpringBootApplication;
Aplikacja @SpringBoot
publicznyklasaOnlineShopaholicsAplikacja{
publicznystatycznypróżniagłówny(String[] argumenty){
SpringApplication.run (OnlineShopaholicsApplication.klasa, argumenty);
}
}
Jednym z najważniejszych aspektów powyższego kodu jest tzw Aplikacja @SpringBoot adnotacja, która jest adnotacją złożoną, która umożliwia aplikacji dostęp do funkcji trzech innych adnotacji:
- @EnableAutoconfiguration: Ta adnotacja umożliwia automatyczną konfigurację Spring Boot. Oznacza to, że mówi Spring bootowi, aby skonfigurował dowolny komponent, który według niego będzie potrzebny do działania aplikacji.
- @ComponentScan: Ta adnotacja umożliwia włączenie skanowania komponentów. Ta funkcja jest ważna, ponieważ pozwala Springowi automatycznie wykrywać i rejestrować inne komponenty z adnotacjami do użycia przez kontekst (lub kontener) aplikacji Springa.
- @SpringBootConfiguration: Jest to wyspecjalizowana forma adnotacji @Configureation, która pozwala rejestrować komponenty bean (lub obiekty) w kontekście aplikacji Spring.
Innym ważnym aspektem powyższego kodu jest główny() metoda, wykonuje twoją aplikację. Gdy aplikacja jest wykonywana teraz, po prostu uruchamia serwer. Jeśli więc chcesz dodać więcej funkcji do aplikacji, musisz zaktualizować kod:
pakiet com.onlineshopaholics;
importorg.wiosna Framework.uruchomić.SpringApplication;
importorg.wiosna Framework.uruchomić.automatyczna konfiguracja.SpringBootApplication;
importorg.wiosna Framework.sieć.wiązać.adnotacja.GetMapping;
importorg.wiosna Framework.sieć.wiązać.adnotacja.RequestParam;
importorg.wiosna Framework.sieć.wiązać.adnotacja.RestController;Aplikacja @SpringBoot
@RestController
publicznyklasaOnlineShopaholicsAplikacja{
publicznystatycznypróżniagłówny(String[] argumenty){
SpringApplication.run (OnlineShopaholicsApplication.klasa, argumenty);
}
@GetMapping("/klient")
publiczny Strunowy Welcome(@RequestParam (wartość = "nazwa", wartość domyślna = "Klient") Strunowy nazwa) {
powrótStrunowy.format("Witaj %s!", nazwa);
}
}
Aplikacja Spring Boot ma teraz trzy nowe adnotacje:
- @RestController: Ta adnotacja oznacza klasę jako kontroler, więc każda metoda w powyższej klasie (oprócz main()) zwróci obiekt domeny zamiast widoku.
- @GetMapping: Ta adnotacja odwzorowuje żądania HTTP GET na określone metody nagłówka. Tak więc za każdym razem, gdy tworzysz żądanie „/customer” w przeglądarce, metoda Welcome() obsłuży żądanie, zwracając wartość ciągu.
- @RequestParam: Ta adnotacja wskazuje, że parametr metody powinien być powiązany z parametrem żądania WWW.
Ze zaktualizowanym kodem twój Spring OnlineShopaholicsAplikacja ma teraz stronę klienta, którą możesz wyświetlić w przeglądarce. Uruchomienie aplikacji uruchomi serwer i wygeneruje dane wyjściowe w konsoli.
Na wyjściu znajduje się wiele ważnych informacji. Informuje, że serwer jest uruchomiony, informuje, jak długo trwał proces inicjalizacji i informuje, na jakim porcie działa aplikacja (domyślnie 8080). Dlatego jeśli przejdziesz do http://localhost: 8080/klient zobaczysz następujące dane wyjściowe w przeglądarce:
Teraz możesz zaprojektować swój widok aplikacji
Innym ważnym plikiem w strukturze projektu, który możesz zauważyć, jest plik szablony teczka. Idealnie, OnlineShopaholicsAplikacja klasa powinna służyć jako kontroler, który obsługuje żądania różnych widoków. Dlatego w kompletnej aplikacji klasa kontrolera nie powinna zawierać tekstu, który wyświetli się w widoku jej żądania.
Zamiast tego będziesz musiał utworzyć pliki szablonów przy użyciu HTML i umieścić je w folderze szablonów aplikacji Spring.