Eine Einführung in das Spring Framework
Spring ist ein Java-Framework, das einen Container verwendet, um die verschiedenen Komponenten einer Anwendung zu erstellen und zu verwalten. Der Container (häufig als Spring-Anwendungskontext bezeichnet) verbindet die verschiedenen Komponenten in einer Anwendung mithilfe des Dependency Injection (DI)-Entwurfsmusters. DI ermöglicht es Ihnen, ein Objekt in einer abhängigen Klasse zu verwenden, ohne eine neue Instanz davon innerhalb der abhängigen Klasse zu erstellen.
Anstatt also jeder Komponente zu erlauben, neue Instanzen derjenigen zu erstellen, auf die sie sich verlassen, erstellt und verwaltet der Container von Spring eine Instanz jeder der Komponenten, die er hostet. Dieser Container injiziert dann eine Instanz einer Komponente in alle anderen Komponenten, die sie benötigen.
Erkundung der Kernfunktionen von Spring
Das Spring-Framework verfügt über rund 20 gut organisierte Module, die eine wesentliche Rolle bei der Erstellung und Verwaltung von Anwendungen spielen. Basierend auf den Hauptfunktionen dieser Module können Sie sie in fünf Kategorien einteilen:
- Core-Container
- Datenzugriff/Integration
- Netz
- Aspektorientierte Programmierung und Instrumentierung
- Prüfen
Frühlingsbehälter
Spring verwendet einen Container, um verschiedene Komponenten (die es Beans nennt) einer Anwendung zu erstellen und zu verwalten. Auf den Container kann über die ApplicationContext-Schnittstelle von Spring zugegriffen werden, mit der Sie Objekte (oder Beans) instanziieren, konfigurieren und zusammenstellen können. Der Container von Spring kann seine Funktion mithilfe von Konfigurationsmetadaten erfüllen.
Diese Konfigurationsmetadaten können verschiedene Formen haben, aber ihre typische Form ist XML. Neben Beans besteht Springs Container auch aus einem Kern-, Kontext- und einem Ausdrucksmodul.
Spring Data Access/Integration
Der Datenzugriffs-/Integrationsaspekt des Spring-Frameworks besteht aus mehreren Untermodulen: JDBC, ORM, OXM, JMS und Transaktion. Diese Module arbeiten zusammen, um alle Daten zu verwalten, die Ihre Anwendung verwendet.
Frühlings-Web
Die Webfunktion der Spring-Anwendung bietet eine weborientierte Integration für Ihre Anwendung. Neben der weborientierten Integration bietet Spring ein Web-Servlet-Modul. Das Web-Servlet-Modul ist für die Model-View-Controller (MVC)-Implementierung von Spring verantwortlich.
Spring Aspektorientierte Programmierung (AOP)
Das AOP-Framework von Spring ist eine weitere Schlüsselkomponente. Obwohl das AOP-Framework für die Containerfunktion von Spring nicht entscheidend ist, ergänzt es den Container, indem es eine leistungsfähige Middleware-Lösung ist. Eines der Hauptmerkmale des AOP-Frameworks besteht darin, dass es deklarative Unternehmensdienste für Ihre Anwendung bereitstellt, nämlich die Verwaltung von Deklarationstransaktionen.
Das deklarative Transaktionsmanagement ist ein wünschenswerter Ansatz für die Softwareentwicklung, da es nur minimale Auswirkungen auf den Anwendungscode hat.
Frühjahrstest
Spring legt großen Wert auf Anwendungstests. Sein Testmodul unterstützt Integrationstests und Unit-Tests mit JUnit oder TestNG.
Erstellen einer Spring-Anwendung
Es gibt mehrere Möglichkeiten, den Textbaustein für eine neue Spring-Anwendung zu erstellen. Zu den verschiedenen Ansätzen gehören:
- Aus der Webanwendung (oder Spring Initializr) auf der offiziellen Website von Spring.
- Manuelles Erstellen einer Projektverzeichnisstruktur und Build-Spezifikationen.
- Mit der Spring Tool Suite.
- Über die Befehlszeile mit der Spring Boot-Befehlszeilenschnittstelle.
- Mit der Eclipse-IDE.
- Mit der IntelliJ IDEA IDE.
Der beliebteste Ansatz ist der Spring Initializr:
Wie Sie dem obigen Bild entnehmen können, müssen Sie mehrere Entscheidungen treffen. Der erste ist der Projekttyp, den Sie initialisieren möchten. Spring bietet drei Optionen: Gradle für Groovy, Gradle für Kotlin oder Maven. Diese Beispielanwendung verwendet ein Maven-Projekt.
Die anderen Optionen, die Sie auswählen müssen, sind die Sprache (Java), die Version von Spring Boot, die Sie verwenden möchten, und die Projektmetadaten. Spring hat bereits einige Dummy-Daten in seinen fünf Feldern, die Ihnen helfen, eine Beispielanwendung zu erstellen. Sie müssen diese Felder jedoch mit projektspezifischen Daten aktualisieren, da diese Metadaten Ihre Spring-Anwendung einschließlich Spring Beans und deren Methoden beschreiben.
Als nächstes müssen Sie das Paket auswählen, in dem Sie Ihre Dateien haben möchten (jar oder war). Dann können Sie die Version von Java auswählen, die Sie auf Ihrem Gerät haben. Die letzte Entscheidung, die Sie treffen müssen, ist die Art der Abhängigkeiten, die Sie für Ihre Anwendung wünschen.
Spring bietet mehrere Abhängigkeiten, mit denen Sie Ihrer Anwendung Eigenschaften hinzufügen können. Um Ihrer Anwendung eine neue Abhängigkeit hinzuzufügen, klicken Sie einfach auf die Schaltfläche Abhängigkeiten hinzufügen rechts neben Spring Initializr. Diese Aktion erzeugt das folgende Overlay auf Ihrem Bildschirm:
Für diese Beispielanwendung benötigen Sie als einzige Abhängigkeit Spring Web. Diese Abhängigkeit ermöglicht es Ihnen, Webanwendungen mithilfe der MVC-Architektur zu erstellen. Nachdem Sie alle Abhängigkeiten ausgewählt haben, die Sie in Ihrer Anwendung verwenden möchten, klicken Sie auf Generieren. Dadurch wird die Projektvorlage für Sie heruntergeladen.
Jetzt haben Sie ein Spring Boot-Projekt (das eine der Bibliotheken von Spring ist). Der letzte Schritt besteht darin, das Projekt in Ihre bevorzugte IDE zu importieren. Ihr Spring-Projekt hat die folgende Projektstruktur:
Dies ist eine normale Maven-Projektstruktur, und es gibt mehrere wichtige Dateien, mit denen Sie sich vertraut machen müssen.
- Pom.xml: Enthält die Konfigurationsdaten der Spring-Anwendung.
- OnlineShopaholicsApplication.java: Dies ist die Hauptklasse von Spring Boot, die die Anwendung ausführt.
- OnlineShopaholicsApplicationTest.java: Dies ist eine JUnit-Testklasse, die sicherstellt, dass der Spring-Anwendungskontext (oder Container) korrekt geladen wird.
Ausführen einer Spring-Anwendung
Die Bootstrap-Klasse von Spring, die in diesem Fall die OnlineShopaholicsApplication-Klasse ist, hat den folgenden anfänglichen Code:
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);
}
}
Einer der wichtigsten Aspekte des obigen Codes ist die Annotation @ SpringBootApplication , eine zusammengesetzte Annotation, mit der Ihre Anwendung auf die Funktionen von drei anderen Annotationen zugreifen kann:
- @EnableAutoconfiguration: Diese Anmerkung aktiviert die automatische Konfiguration von Spring Boot. Dies bedeutet, dass es Spring Boot anweist, jede Komponente zu konfigurieren, von der es glaubt, dass Ihre Anwendung funktionieren muss.
- @ComponentScan: Mit dieser Anmerkung können Sie das Scannen von Komponenten aktivieren. Diese Funktion ist wichtig, sie ermöglicht es Spring, automatisch andere annotierte Komponenten für die Verwendung durch den Spring-Anwendungskontext (oder Container) zu erkennen und zu registrieren.
- @SpringBootConfiguration: Dies ist eine spezielle Form der Annotation @Configuration, mit der Sie Beans (oder Objekte) im Spring-Anwendungskontext registrieren können.
Der andere wichtige Aspekt des obigen Codes ist die Methode main() , sie führt Ihre Anwendung aus. Wenn die Anwendung jetzt ausgeführt wird, startet sie einfach den Server. Wenn Sie also der Anwendung weitere Funktionen hinzufügen möchten, müssen Sie den Code aktualisieren:
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);
}
}
Die Spring Boot-Anwendung hat jetzt drei neue Anmerkungen:
- @RestController: Diese Anmerkung markiert die Klasse als Controller, sodass jede Methode in der obigen Klasse (außer main()) ein Domänenobjekt anstelle einer Ansicht zurückgibt.
- @GetMapping: Diese Anmerkung ordnet HTTP-GET-Anforderungen bestimmten Header-Methoden zu. Jedes Mal, wenn Sie im Browser eine Anfrage für „/customer“ erstellen, verarbeitet die Welcome()-Methode die Anfrage, indem sie einen Zeichenfolgenwert zurückgibt.
- @RequestParam: Diese Anmerkung gibt an, dass ein Methodenparameter an einen Webanforderungsparameter gebunden werden sollte.
Mit dem aktualisierten Code verfügt Ihre Spring OnlineShopaholics -Anwendung jetzt über eine Kundenseite, die Sie in Ihrem Browser anzeigen können. Das Ausführen der Anwendung startet den Server und erzeugt eine Ausgabe in der Konsole.
Es gibt viele wichtige Informationen in der Ausgabe. Es sagt Ihnen, dass der Server läuft, es sagt Ihnen, wie lange der Initialisierungsprozess gedauert hat, und es sagt Ihnen, auf welchem Port die Anwendung läuft (standardmäßig 8080). Wenn Sie also zu http://localhost:8080/customer navigieren, sehen Sie die folgende Ausgabe in Ihrem Browser:
Jetzt können Sie Ihre Anwendungsansicht gestalten
Eine weitere wichtige Datei in der Projektstruktur, die Ihnen vielleicht auffallen wird, ist der Vorlagenordner . Idealerweise sollte die OnlineShopaholicsApplication -Klasse als Controller dienen, der Anforderungen für verschiedene Ansichten verarbeitet. Daher sollte die Controller-Klasse in einer vollständigen Anwendung nicht den Text enthalten, der in der Ansicht seiner Anforderung angezeigt wird.
Stattdessen müssen Sie Vorlagendateien mit HTML erstellen und sie im Vorlagenordner Ihrer Spring-Anwendung ablegen.
Schreibe einen Kommentar