Wprowadzenie do Spring Framework

Wprowadzenie do Spring Framework

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 spełniać 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żeń.

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 sieciowego jest odpowiedzialny za implementację modelu-widok-kontrolera (MVC) Springa.

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 zdolnym 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:

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.

Wiosenne metadane Intializr

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:

Nakładka Spring Initializr

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ęcia. 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:

Struktura projektu Spring Boot

Jest to 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 klasa testowa JUnit, 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:

package com.onlineshopaholics;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
public class OnlineShopaholicsApplication {
  public static void main(String[] args) {
    SpringApplication.run(OnlineShopaholicsApplication.class, args);
  }
}

Jednym z najważniejszych aspektów powyższego kodu jest adnotacja @SpringBootApplication , która jest adnotacją złożoną, która umożliwia Twojej 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 aplikacji Springa (lub kontener).
  • @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 metoda main() , która 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:

package com.onlineshopaholics;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class OnlineShopaholicsApplication {
  public static void main(String[] args) {
    SpringApplication.run(OnlineShopaholicsApplication.class, args);
  }

  @GetMapping("/customer")
  public String Welcome(@RequestParam(value = "name", defaultValue = "Customer") String name) {
    return String.format("Welcome %s!", name);
  }
}

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.

Dzięki zaktualizowanemu kodowi Twoja Spring OnlineShopaholicsApplication 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/customer , w przeglądarce zobaczysz następujące dane wyjściowe:

Dane wyjściowe przeglądarki aplikacji Spring

Teraz możesz zaprojektować swój widok aplikacji

Innym ważnym plikiem w strukturze projektu, który możesz zauważyć, jest folder szablonów . W idealnym przypadku klasa OnlineShopaholicsApplication powinna służyć jako kontroler obsługujący żądania dotyczące 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.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *