[JAVA] 1. Starten Sie Spring Framework von 1

Was ist Spring Framework?

Erstens ist die Existenz eines Frameworks für die Entwicklung von Java-Webanwendungen unverzichtbar. Eines der am häufigsten verwendeten Frameworks ist dieses Spring-Framework. Der Frühling hat eine lange Geschichte und wurde seit der Veröffentlichung des ersten Frühlings im Jahr 2002 als Open Source verbessert. Es scheint, dass die Hauptgründe, warum Spring beliebt ist, die einfache Änderung der Systemspezifikationen, die einfache Programmprüfung, die Erweiterbarkeit und die Stabilität des Systems sind.

Frühlingsübersicht

Mit Spring können je nach Verwendung des Moduls eine Vielzahl von Anwendungen und Software entwickelt werden. Unter ihnen, wenn Sie einige bekannte erwähnen, die häufig in der eigentlichen Arbeit usw. verwendet werden. ・ E / A-Projekt ·Anwendungsentwicklung ・ Entwicklung von Webanwendungen ・ Softwareentwicklung in der Cloud ・ Datenbankverwaltungssoftware ・ Entwicklung von Android-Anwendungen Sie können sehen, dass es in einer Vielzahl von Genres verwendet wird, um nur einige zu nennen.

Vorteile des Frühlings

Einige spezifische Vorteile des Frühlings ** ・ Hochrangige Entwicklungsumgebung mit DI-Container und AOP-Framework ** (AOP-Referenzartikel) ** ・ Reichlich vorhandene Module ** ** ・ RESTful Unterstützung ** (RESTful API-Referenzartikel) ** ・ IDE (STS) für Spring wird kostenlos veröffentlicht ** ** ・ NoSQL-Unterstützung für umfangreiche Datenbanken ** (NoSQL-Referenzartikel)

Nachteile des Frühlings

Es gibt nicht nur Vor-, sondern auch Nachteile. Insgesamt gibt es viele Nachteile in Bezug auf die Lernkosten. ** ・ Der Umfang des Frameworks ist groß und es ist schwierig, das Ganze zu erfassen ・ Es ist schwierig, den DI-Behälter richtig zu verwenden. ・ Um richtig zu verstehen, sind fortgeschrittene Java-Kenntnisse erforderlich **

Typische Funktionen des Frühlings

Wie oben erwähnt, werde ich mich mit einigen der schönen Eigenschaften des Frühlings befassen.

DI-Behälter

Was ist DI (Abhängigkeitsinjektion) überhaupt? Wenn ich nachforsche, sehe ich oft "Injektion von Abhängigkeit", aber selbst wenn ich so viel höre, verstehe ich die Bedeutung nicht ganz ... Wenn man sich das Wiki ansieht, ist es wie folgt geschrieben.

Beseitigen Sie Abhängigkeiten zwischen Komponenten aus dem Quellcode des Programms Es ist ein Softwaremuster, das die Injektion mit einer externen Einstellungsdatei ermöglicht. Beschreiben Sie beim Schreiben eines Programms, das die Abhängigkeitsinjektion verwendet, die Beziehungen zwischen den Komponenten mithilfe einer Schnittstelle. Geben Sie keine bestimmte Komponente an. Durch die Beschreibung der in einer externen Datei zu verwendenden Komponente kann die Abhängigkeit zwischen Komponenten aus dem Quellcode entfernt werden.

Was ich tun möchte, ist ** "Lassen Sie uns die Klassen lose verbinden und die tatsächlichen Daten ausgehen lassen" **.

Vorteile von DI

Da Komponente A und Komponente B in der Einstellungsdatei beschrieben sind, Beseitigt die Notwendigkeit, Beziehungen innerhalb von Komponenten zu definieren. dadurch, ** Wenn Komponente A nicht abgeschlossen ist, tritt ein Kompilierungsfehler auf und Komponente B kann nicht erstellt werden ** Die Entwicklung kann ohne Einfluss des Arbeitsauftrags erfolgen.

Dies erleichtert auch die Durchführung von Komponententests für Klassen. Eines der Probleme beim Schreiben von Testcode ist das Abhängigkeitsproblem. Im obigen Beispiel müssen Sie zum Testen von Komponente B den Test auf Komponente A erweitern. Durch Verwendung eines Scheinobjekts, das die Schnittstelle im DI-Container implementiert Sie können damit nur die Klasse testen, die Sie testen möchten, unabhängig vom Abschluss der Klasse selbst oder von Fehlern. Auch wenn Komponente A geändert wird, kann der Testcode von Komponente B unverändert verwendet werden.

DI-Verwendungsbeispiel

Die Konfigurationsdatei ist wie gewohnt XML. -Servlet-context.xml

1<context:annotation-config />
2<context:component-scan base-package="com.example.controller" />

com.example.controller Legen Sie alle folgenden Klassen so fest, dass sie DI sein können.

@Controller
public class ExampleController {

    @Autowired
    private ExampleService exampleService ;

    @RequestMapping('/')
    @ResponseBody
    public String find(String itemId) {
        ItemEntity item = exampleService.findItemData(itemId);
        return item.getItemName();
    }
}

Der ExampleService ist DI mit der Annotation @Autowired. Auf diese Weise können Sie das Objekt ohne neues verwenden.

Spring MVC und Datenzugriff

Es ist ein Framework für die Entwicklung von Webanwendungen im Frühjahr und verwendet MVC als Architekturmuster. Wie der Name schon sagt, ist es ein Framework für die Controller-Schicht, um MVC zu realisieren. Unnötig zu sagen, als Überblick über MVC

** ・ Modell: Modell. Prozessgeschäftslogik (die Kernfunktion der Anwendung) -Ansicht: Ansicht. Informationen anzeigen -Controller: Controller. Akzeptiert Ereignisse von Benutzern und steuert die Verarbeitung und Anzeige **

Im Frühjahr werden die Modelloperation und der Wert, der von View übergeben wird, basierend auf der Controller-Klasse realisiert. Darüber hinaus ruft die Controller-Klasse oder die Logic-Klasse (normalerweise über die Transaktionsgrenze hinweg) die Service-Klasse der Domänenschicht auf.

Anmerkung

Im Frühjahr ist die Verarbeitung klar durch verschiedene Anmerkungen unterteilt. Es gibt Frühlingsanmerkungen "@Component, @Service, @Repository, @Controller" und so weiter.

@Controller Gewähren Sie es der Controller-Layer-Klasse in Spring MVC. Geben Sie dies einfach an und Spring erkennt diese Klasse als Controller-Klasse.

Wenn in Spring MVC eine bestimmte URL angefordert wird, werden die Anforderung und die Java-Verarbeitungsmethode im Ablauf des "Aufrufs der init () -Methode der Klasse A" zugeordnet.

Nicht nur die URL, sondern auch die Bedingung, die die Methode zur Durchführung dieses Prozesses bestimmt Header, Cookies, http-Methoden (GET, POST usw.), Parameter usw. Es ist möglich, fast alle vom Browser gesendeten Informationen zu verwenden. Es ist möglich, die obigen Werte mit Anmerkungen zu übergeben.

Fügen Sie der Methode in der Controller-Klasse außerdem die Annotation @ModelAttribute hinzu. Es ist möglich, den Rückgabewert der Methode zu Model hinzuzufügen und ihn an die von JSP usw. implementierte Ansicht zurückzugeben.

@Service Es ist der Service-Layer-Klasse (Geschäftslogik usw.) zugeordnet. Es wird hauptsächlich von der Controllerseite aufgerufen, um Klassen aufzurufen, die auf DB wie DAO zugreifen.

@Repository Der Datenschichtklasse (DB-Zugriffsklasse) zuordnen. Es wird von Diensten wie sogenannten DAO-Klassen aufgerufen, um auf die DB zuzugreifen.

@Component Geben Sie es der Klasse, die Sie im Spring DI-Container registrieren möchten. Mit @Autowired können Sie eine Instanz der Komponente erhalten, die unter Komponentenscan mit Anmerkungen versehen ist.

nächstes Mal

Dies ist das Ende des Frühlingsartikels Nr. 1. Das nächste Mal werde ich mich mit verschiedenen Anmerkungen und den Funktionen befassen, die ich bisher geschrieben habe. Wir werden tatsächlich ein kleines System erstellen.

Recommended Posts

1. Starten Sie Spring Framework von 1
[Spring Framework] Konfigurationsaufteilung
Mehrsprachige Unterstützung für Spring Framework
Über den offiziellen Startleitfaden für Spring Framework
Spring Framework Zusammenfassung - Über DI
Eine Aufzeichnung über das Studium des Spring Framework von Grund auf neu
[Persönliche Notizen] Über das Spring Framework
Versuchen Sie Spring Boot von 0 bis 100.
Spring + Gradle + Java Schnellstart
Spring Framework Selbststudium Memo series_1
Informationen zum Spring Framework-Kontextfehler
Spring Framework 5.0 Zusammenfassung der wichtigsten Änderungen
Frühlingsrahmen Einfaches Studienmemo (2): AOP
Spring Framework-Tools für Java-Entwickler
Java, Schnittstelle für Anfänger
Rüsten Sie den Federstiefel von der 1.5-Serie auf die 2.0-Serie auf
Testen Sie den Spring Framework Controller mit Junit
Spring Boot ab Null Teil 2
Spring Boot ab Null Teil 1
Rufen Sie Spring Management Bean von Pojo
So erhalten Sie den Einstellungswert (Eigenschaftswert) aus der Datenbank in Spring Framework
Automatisch generiertes Memo von swagger condegen (spring) -1
Einführung der Basisauthentifizierung in Heroku [Spring Framework]
Spring Boot 2.0.0 startet den integrierten Tomcat nicht
Wichtige Änderungen im Zusammenhang mit Spring Framework 5.0 Test
XML-Definition der Spring Framework-Bean: benutzerdefiniertes Tag
Die Geschichte des Übergangs von Spring Boot 1.5 zu 2.1
Warum Frühling als leichtes Gerüst betrachten
Anmerkungen zur Spring Framework-Studie [Teil 1] DI-Container
Starten Sie die Entwicklung von Webanwendungen mit Spring Boot
Änderungen bei der Migration von Spring Boot 1.5 auf Spring Boot 2.0
Informationen zur ersten Anzeige von Spring Framework
Übergang von Struts2 zu Spring MVC (Controller)
Post to Slack von Play Framework 2.8 (Java)
Änderungen bei der Migration von Spring Boot 2.0 zu Spring Boot 2.2
Wichtige Änderungen in der Kernfunktionalität von Spring Framework 5.0
Funktionen des Spring Frameworks für Java-Entwickler