[JAVA] Über den offiziellen Startleitfaden für Spring Framework

Einführung

Ich habe versucht, das Spring Framework zu erlernen, und habe mir den Official Start Guide angesehen, aber die Nummer war durcheinander. Eigentlich dachte ich daran, alles zu tun, aber ich war frustriert, und selbst die Kategorisierung schien auf halbem Weg, aber ich habe den ersten Durchgang bestanden, also habe ich ihn für einen Gedenkgottesdienst zusammengefasst. Der Inhalt ist ab Juni 2018.

Anleitung starten

Informationen zu den Grundlagen des Erstellens von Spring Boot

https://spring.io/guides/gs/spring-boot/ Informationen zu den grundlegenden Inhalten zum Erstellen von Spring Boot. Es wird in derselben Zeile wie andere Startanleitungen behandelt, aber ich denke, Sie können es zuerst lesen.

IDE Spring Tool Suite https://spring.io/guides/gs/sts/ Informationen zur Spring Tool Suite, einer IDE für Spring Framework.

IntelliJ IDEA https://spring.io/guides/gs/intellij-idea/ Verwendung von IntelliJ IDEA. Ultimate Edition scheint mit dem Spring Framework zu funktionieren, ist aber wahrscheinlich bezahlt.

REST API

Erstellen

https://spring.io/guides/gs/rest-service/ So erstellen Sie eine API, die JSON in einer HTTP-GET-Anforderung zurückgibt. Ich habe die Erstellung der API per POST-Anfrage nicht angesprochen, daher muss ich sie separat untersuchen.

Lauf

https://spring.io/guides/gs/consuming-rest/ Eine einfache Möglichkeit, die REST-API mit der Klasse "RestTemplate" auszuführen.

Ausführung regulärer Aufgaben

https://spring.io/guides/gs/scheduling-tasks/ So implementieren Sie, wenn Sie Aufgaben in regelmäßigen Abständen ausführen möchten. Das Beispiel verwendet "fixedRate" (führt Aufgaben in regelmäßigen Abständen aus, unabhängig davon, ob die laufende Aufgabe abgeschlossen wurde), verwendet jedoch auch "fixedDelay" (wird ausgeführt, nachdem die laufende Aufgabe abgeschlossen wurde). Warten Sie eine Weile, um die nächste Aufgabe auszuführen) und "cron".

Über das Erstellen eines Projekts

Gradle https://spring.io/guides/gs/gradle/ Bauen Sie mit Gradle. Maven https://spring.io/guides/gs/maven/ Erbaut von Maven.

Erstellen einer WAR-Datei

https://spring.io/guides/gs/convert-jar-to-war/ Informationen zum Erstellen einer WAR-Datei.

Multiprojekt

https://spring.io/guides/gs/multi-module/ So erstellen Sie mehrere Projekte.

DB

Herstellen einer Verbindung zu RDB mit JDBC

https://spring.io/guides/gs/relational-data-access/ Herstellen einer Verbindung zu RDB mithilfe der Klasse "JdbcTemplate".

Transaktionsmanagement

https://spring.io/guides/gs/managing-transactions/ Wie der Name schon sagt, über das DB-Transaktionsmanagement.

Datei-Upload

https://spring.io/guides/gs/uploading-files/ So laden Sie Dateien hoch. Es gibt Stellen, an denen nur die Benutzeroberfläche als Beispiel angezeigt wird. Wenn Sie sie also vorerst verschieben möchten, lesen Sie besser Official GitHub. .. Ich verwende in meinem Testcode auch die Methode "MockMvcRequestBuilders.fileUpload", die jedoch nicht mehr empfohlen wird (https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/test/). Es sieht aus wie web / servlet / request / MockMvcRequestBuilders.html # fileUpload-java.net.URI-), also stattdessen [MockMvcRequestBuilders.multipart](https://docs.spring.io/spring-framework/docs/current /javadoc-api/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.html#multipart-java.net.URI-) Es scheint gut, die Methode zu verwenden. Ich frage mich, ob es nicht mit Anma-chan aktualisiert wurde ...

Sicherheit

LDAP-Authentifizierung

https://spring.io/guides/gs/authenticating-ldap/ Informationen zur Authentifizierung per LDAP. Es scheint, dass die Änderung von application.properties weggelassen wurde, daher ist Official GitHub für diesen Punkt hilfreich. Benutzerinformationen werden in einer Datei zum Testen und "LdapShaPasswordEncoder" (bereits veraltete Klasse für die Kennwortcodierung verwaltet docs / current / api / org / springframework / security / crypto / password / LdapShaPasswordEncoder.html)) wird verwendet, sodass anscheinend mehr Forschung erforderlich ist, wenn es in der Produktion verwendet wird.

Seitenauthentifizierung

https://spring.io/guides/gs/securing-web/ Ich erstelle eine Seite, die nur von Benutzern angezeigt werden kann, die mit Spring Security authentifiziert wurden.

Facebook ** * Hinzugefügt 2018/08 ** Der unten stehende Link war vorhanden, wurde jedoch aus der offiziellen Liste der Startanleitungen entfernt. Das GitHub-Beispielprogramm hat auch den Projektnamen "veraltet", sodass ich der Meinung bin, dass Facebook-bezogene Projekte in Zukunft nicht mehr verwendet werden können.

Stellen Sie eine Verbindung zur Anwendung her

~~https://spring.io/guides/gs/register-facebook-app/ Herstellen einer Verbindung zu einer Facebook-Anwendung mithilfe der Klasse "FacebookTemplate". Es gibt ein Beispiel in Official GitHub. ~~

Zugriff auf Daten

~~https://spring.io/guides/gs/accessing-facebook/ Über den Zugriff auf Facebook-Daten. In diesem Beispiel werden die Feed-Informationen abgerufen, jedoch soweit das Dokument angezeigt wird. Facebook.html) Wie, nimm Freundinformationen auf und so weiter. ~~

Pub/Sub Redis https://spring.io/guides/gs/messaging-redis/ Redis ist als NoSQL-Datenbank bekannt, kann aber anscheinend auch Nachrichten senden und empfangen. Das Beispiel fasst das Senden und Empfangen der Nachricht zusammen.

RabbitMQ https://spring.io/guides/gs/messaging-rabbitmq/ Informationen zum Senden und Empfangen von Nachrichten mit RabbitMQ.

JMS https://spring.io/guides/gs/messaging-jms/ Informationen zum Senden und Empfangen von Nachrichten per JMS.

Google Cloud Pub/Sub https://spring.io/guides/gs/messaging-gcp-pubsub/ Informationen zur Verwendung von Google Cloud Pub / Sub. Das Beispiel verwendet auch Spring Integration.

Twitter ** * Hinzugefügt 2018/08 ** Der unten stehende Link war vorhanden, wurde jedoch aus der offiziellen Liste der Startanleitungen entfernt. Das GitHub-Beispielprogramm hat auch den Projektnamen "veraltet", sodass ich der Meinung bin, dass Twitter-bezogene Projekte in Zukunft nicht mehr verwendet werden können.

Stellen Sie eine Verbindung zur Anwendung her

~~https://spring.io/guides/gs/register-twitter-app/ So stellen Sie eine Verbindung zur Twitter-Anwendung her ... Ich bin jedoch der Meinung, dass die Seite fehlerhaft ist. Der Link zu GitHub funktioniert auch nicht gut. Der offizielle GitHub ist hier. ~~

Zugriff auf Daten

~~https://spring.io/guides/gs/accessing-twitter/ Über den Zugriff auf Twitter-Daten. Soweit das Dokument angezeigt wird Bearbeiten der Zeitleiste und der Benutzerliste Ich denke, ich kann etwas tun. ~~

Neo4j

Zugriff auf Daten

https://spring.io/guides/gs/accessing-data-neo4j/ Informationen zum Datenzugriff auf Neo4j, eine Grafikdatenbank.

REST https://spring.io/guides/gs/accessing-neo4j-data-rest/ Über den Zugriff auf Neo4j per REST.

Spring Boot Actuator https://spring.io/guides/gs/actuator-service/ Spring Boot verfügt über ein Teilprojekt mit dem Namen Spring Boot Actuator Es scheint, dass verschiedene Endpunkte wie Endpunkte hinzugefügt werden.

Stapelverarbeitung

https://spring.io/guides/gs/batch-processing/ Informationen zur Stapelverarbeitung im Frühjahr. Es werden eine Reihe von Prozessen ausgeführt: Datenerfassung aus CSV → Konvertierung von Wert in Großbuchstaben → Wertspeicherung in DB.

HATEOAS https://spring.io/guides/gs/rest-hateoas/ Die Idee von HATEOAS? Informationen zum Erstellen einer Restful-API, die Folgendes enthält:

Pivotal GemFire

Zugriff auf Daten

https://spring.io/guides/gs/accessing-data-gemfire/ Informationen zur Verwendung von Pivotal GemFire, einem speicherinternen Datenraster.

Datencache

https://spring.io/guides/gs/caching-gemfire/ Informationen zum Zwischenspeichern von Pivotal GemFire-Daten.

REST https://spring.io/guides/gs/accessing-gemfire-data-rest/ Informationen zum Zugriff auf Pivotal GemFire per REST.

EIP https://spring.io/guides/gs/integration/ Der Titel der Startanleitung lautet "Daten integrieren". Eines der Projekte von Spring ist Spring Integration, ein Framework, das meines Erachtens dem Konzept von EIP (Enterprise Integration Patterns) folgt. Es wird verwendet, um Daten als Nachrichten auszutauschen und in andere Anwendungen zu integrieren.

JPA

Zugriff auf Daten

https://spring.io/guides/gs/accessing-data-jpa/ Informationen zum Datenzugriff auf die Datenbank durch JPA.

REST https://spring.io/guides/gs/accessing-data-rest/ Informationen zum DB-Zugriff über REST + JPA. Es scheint, dass es funktioniert, ohne einen Controller zu erstellen, indem nur eine dedizierte Anmerkung hinzugefügt wird.

MySQL https://spring.io/guides/gs/accessing-data-mysql/ Informationen zum Datenzugriff auf MySQL mit JPA.

MongoDB

Wie benutzt man

https://spring.io/guides/gs/accessing-data-mongodb/ Informationen zur Verwendung von MongoDB, NoSQL.

REST https://spring.io/guides/gs/accessing-mongodb-data-rest/ Informationen zum Zugriff auf MongoDB per REST.

Website

Erstellen

https://spring.io/guides/gs/serving-web-content/ Informationen zum Erstellen von Webseiten mit dem Spring-Framework.

Validierung der Formulareingabe

https://spring.io/guides/gs/validating-form-input/ Wie der Titel schon sagt, über die Validierung der Formulareingabe.

Formular einreichen

https://spring.io/guides/gs/handling-form-submission/ Informationen zum Einreichen von Formularen.

Ausführung der asynchronen Verarbeitung

https://spring.io/guides/gs/async-method/ Über die Ausführung der Verarbeitung durch Multithread.

WebSocket https://spring.io/guides/gs/messaging-stomp-websocket/ Informationen zur Verwendung von WebSocket.

AngularJS https://spring.io/guides/gs/consuming-rest-angularjs/ Bei Verwendung von AngularJS.

rest.js https://spring.io/guides/gs/consuming-rest-restjs/ Informationen zur Verwendung von rest.js. Oder besser gesagt, ich konnte nicht herausfinden, was rest.js war, als ich danach suchte, aber ich frage mich, ob es ein wichtiger ist.

jQuery https://spring.io/guides/gs/consuming-rest-jquery/ Informationen zur Verwendung von jQuery.

CORS https://spring.io/guides/gs/rest-service-cors/ Über die Korrespondenz mit CORS.

YARN

Bauen Sie mit Gradle

https://spring.io/guides/gs/gradle-yarn/ Über das Bauen mit YARN (Gradle).

Von Maven gebaut

https://spring.io/guides/gs/maven-yarn/ Über das Bauen mit YARN (Maven).

Eine Anwendung erstellen

https://spring.io/guides/gs/yarn-basic-single/ Informationen zum Erstellen einer einfachen Anwendung mit YARN.

Erstellen einer Anwendung (Multiprojekt)

https://spring.io/guides/gs/yarn-basic/ Informationen zum Erstellen einer einfachen Anwendung mit YARN. Etwa 3 JARs werden durch Verknüpfung mit Hadoop erstellt, wobei gesagt wird, dass dies einfach ist.

Prüfung

https://spring.io/guides/gs/yarn-testing/ Informationen zum Testen von Anwendungen mit YARN.

Stapelverarbeitung

https://spring.io/guides/gs/yarn-batch-processing/ Informationen zur Stapelverarbeitung in Anwendungen mit YARN.

Führen Sie die Stapelverarbeitung erneut aus

https://spring.io/guides/gs/yarn-batch-restart/ So starten Sie die Stapelverarbeitung neu, von wo aus die Anwendung mit YARN fehlgeschlagen ist.

SOAP

Nutzung von Webdiensten

https://spring.io/guides/gs/consuming-web-service/ Verwendung von SOAP-basierten Webdiensten.

Erstellen eines Webdienstes

https://spring.io/guides/gs/producing-web-service/ So erstellen Sie einen SOAP-basierten Webdienst.

Zwischenspeicher

https://spring.io/guides/gs/caching/ Informationen zum Zwischenspeichern von Daten. Es scheint, dass Sie das Ausführungsergebnis der Methode usw. aus dem Cache abrufen können.

Cloud Foundry https://spring.io/guides/gs/sts-cloud-foundry-deployment/ So stellen Sie eine Anwendung mithilfe von STS in Cloud Foundry bereit, einem von PaaS.

HashiCorp Vault

Einstellmethode

https://spring.io/guides/gs/vault-config/ Es scheint einen Hashi Corp Vault als Anwendung zum Verwalten vertraulicher Informationen zu geben, und die Einstellungsmethode für die Verwendung dieser Informationen aus Spring wird beschrieben.

Datenzugriff

https://spring.io/guides/gs/accessing-vault/ Über den Datenzugriff in Hashi Corp Vault oben.

WebFlux https://spring.io/guides/gs/reactive-rest-service/ Mit der neuen Funktion aus Version 5 scheint es, dass durch reaktive Programmierung im Gegensatz zur Vergangenheit nicht blockierende Anwendungen erstellt werden können. Wenn Sie die Bedeutung des Wortes nicht kennen, wissen Sie nicht, was es ist, aber der Punkt ist, dass Sie eine effiziente Verarbeitung mit weniger Threads ausführen können. Bisher gab es "RestTemplate" bei der Ausführung der REST-API, aber ab Version 5 wurde eine Klasse namens "WebClient" für die Kommunikation mit nicht blockierenden Anwendungen hinzugefügt, und es wird auch beschrieben, wie diese verwendet wird.

Azure https://spring.io/guides/gs/spring-boot-for-azure/ So stellen Sie Spring-Anwendungen in Microsoft Azure bereit

Lastenausgleicher

https://spring.io/guides/gs/client-side-load-balancing/ Ein Beispiel für die Verwendung eines clientseitigen Load Balancers namens Netflix Ribbon. [Siehe unten](/ nulltemp / items / 22655c8dde1fe23c1297 # Service Discovery) scheint in Verbindung mit Netflix Eureka verwendet zu werden.

Routing

Zuul https://spring.io/guides/gs/routing-and-filtering/ Informationen zum Weiterleiten und Filtern von Anforderungen mithilfe einer Bibliothek namens Netflix Zuul.

Spring Cloud Gateway https://spring.io/guides/gs/gateway/ Fordern Sie das Routing mit Spring Cloud Gateway an. Das Beispiel zeigt ein Beispiel für die Verwendung einer von Netflix entwickelten Bibliothek namens Hystrix (es scheint, dass ein Fehler im verbundenen Dienst behoben wird). Um ehrlich zu sein, verstehe ich den Zweck der Bibliothek nicht wirklich, aber es scheint, dass sie oft mit Zuul verglichen wird, also ist sie wahrscheinlich in derselben Kategorie. Zum Zeitpunkt von Zuul 1 unterstützt die blockierende API kein WebSocket usw., aber da Spring Cloud Gateway eine nicht blockierende API ist, unterstützt sie auch WebSocket ... Es scheint, dass es eine Stärke war / 47092048 / wie-spring-cloud-gateway-sich-von-zuul unterscheidet), aber Zuul 2 scheint eine nicht blockierende API zu sein, daher frage ich mich, ob es sich auf andere Weise unterscheidet.

Serviceerkennung

https://spring.io/guides/gs/service-registration-and-discovery/ Informationen zur Verwendung von Netflix Eureka, bei dem es sich um eine Diensterkennung handelt (es scheint sich um eine Middleware zu handeln, die den erstellten Dienst registriert und nach Bedarf durchsucht).

API-Dokumentation

https://spring.io/guides/gs/testing-restdocs/ Informationen zum Erstellen einer API-Dokumentation mit Spring REST Docs.

Prüfung

Consumer Driven Contract https://spring.io/guides/gs/contract-rest/ Verbrauchergetriebener Vertrag? Über. Es scheint die Idee zu sein, in Microservices zu testen. Es gibt ein Teilprojekt namens Spring Cloud Contract, das ein Beispiel dafür ist.

Testen der Webebene

https://spring.io/guides/gs/testing-web/ Informationen zu den Grundlagen des Testens des Spring Framework. Anhand eines einfachen Tests, um festzustellen, ob der Server gestartet werden kann, testen wir den Betrieb der API, ohne den Server zu starten.

Circuit Breaker https://spring.io/guides/gs/circuit-breaker/ Informationen zu Netflix Hystrix, das in [Spring Cloud Gateway-Beispiel](/ nulltemp / items / 22655c8dde1fe23c1297 # spring-cloud-gateway) angezeigt wurde. Ein Mechanismus, um die Auswirkungen auf andere verwandte Dienste zu stoppen, wenn die verwandten Dienste gestoppt werden.

Vaadin https://spring.io/guides/gs/crud-with-vaadin/ Über Vaadin, ein UI-Framework, das Java verwendet. Im Beispiel wird JPA auch zum Erstellen einer Benutzeroberfläche verwendet, die DB-Vorgänge ermöglicht.

Redis https://spring.io/guides/gs/spring-data-reactive-redis/ Es gab auch [Beispiel bei Verwendung von Redis](/ nulltemp / items / 22655c8dde1fe23c1297 # redis) in Pub / Sub, aber hier ist ein Beispiel, wenn Sie den Wert normalerweise einfügen und abrufen.

Einstellungen verwalten

https://spring.io/guides/gs/centralized-configuration/ Durch Starten von Config Server und Verweisen auf den Client-Server können dieselben Einstellungen dynamisch auf mehrere Client-Server angewendet werden ... Ich denke.

Docker https://spring.io/guides/gs/spring-boot-docker/ Über die Zusammenarbeit mit Docker, die jeder liebt.

abschließend

Recommended Posts

Über den offiziellen Startleitfaden für Spring Framework
Informationen zur ersten Anzeige von Spring Framework
1. Starten Sie Spring Framework von 1
Über DI des Frühlings ①
Über DI des Frühlings ②
Der offizielle Name von Spring MVC ist Spring Web MVC
Eine Übersicht über die Spring Framework Resource-Oberfläche
Eine Aufzeichnung über das Studium des Spring Framework von Grund auf neu
Über den Umgang mit Null
[Persönliche Notizen] Über das Spring Framework
Informationen zum Spring Framework-Kontextfehler
Informationen zur Beschreibung von Docker-compose.yml
Über die Funktion von Spring Boot aufgrund unterschiedlicher Versionen
Über das Verhalten von Ruby Hash # ==
Spring Framework 5.0 Zusammenfassung der wichtigsten Änderungen
Über die Grundlagen der Android-Entwicklung
Über das Binden der Spring AOP Annotation
Informationen zur Rolle der Initialisierungsmethode
Denken Sie an die 7 Regeln von Optional
Filtern Sie das Ergebnis von BindingResult [Spring]
Informationen zur Protokollebene von java.util.logging.Logger
Erraten Sie das Java Persistence Framework 2017 (3) Reladomo
Was ist ein Test? ・ Über die Wichtigkeit eines Tests
Verstehe die offizielle Probe Coffee of Dagger2
Über den Frühling ③
Informationen zur Funktionsweise von next () und nextLine ()
Funktionen des Spring Frameworks für Java-Entwickler
Über die Behandlung von BigDecimal (mit Reflexion)
Über die Anzahl der Threads von Completable Future
[Java] [Spring] Testen Sie das Verhalten des Loggers
Denken Sie an die Kombination von Servlet und Ajax
Zellers Beamter (fragt nach dem Tag)
Zusammenfassung dessen, was ich über Spring Boot gelernt habe
Informationen zur Beschreibungsreihenfolge der Java-Systemeigenschaften
Über die Idee anonymer Klassen in Java
[Laravel] Befehlsmemorandum bis zum Start des Projekts
Die Geschichte der Erhöhung der Spring Boot 1.5-Serie auf die 2.1-Serie
Lassen Sie uns das Gefühl von Spring Boot + Swagger 2.0 überprüfen
Verschiedene Korrespondenztabellen zwischen Spring Framework und Spring Boot
Transaktionsmanagement des integrierten Frameworks "Apache Camel"
Informationen zu next () und nextLine () der Scannerklasse
Über Spring AOP
Über die Methode
Über den Frühling AOP
Über das Paket
Geben Sie die statische Ressourcencodierung in Spring Boot an
[Für Anfänger] DI ~ Die Grundlagen von DI und DI im Frühjahr ~
[Grails] Über den Einstellungsbereich und die Einstellungselemente von application.yml
Über die Nützlichkeit von Monaden aus einer objektorientierten Perspektive
Über die Vorzüge von Datenbankbindungsvariablen sprechen ((1) Einführung)
Greifen Sie mit jdbcTemplate auf das integrierte h2db des Spring Boot zu
05. Ich habe versucht, die Quelle von Spring Boot zu löschen
Über das Problem des Deadlocks bei der Parallelverarbeitung in gem'sprockets '4.0
Ich habe versucht, die Kapazität von Spring Boot zu reduzieren
Bis zur Verwendung von Spring Data und JPA Part 2
Lesen Sie das Rails-Handbuch erneut (Übersicht über Action Controller).