[JAVA] [Für den internen Gebrauch] Für diejenigen, die dem Spring Boot-Projekt zugewiesen sind (im Aufbau)
Diese Agenda wird verwendet, um Mitarbeitern zu erklären, die zum ersten Mal Spring Boot zugewiesen wurden.
Vorausgesetztes Wissen
- Grundlegende Java 8-Syntax
- HTML5, CSS3, JavaScript(ES5)
- Servlet3.1
- HTTP GET, POST
Entwicklungsumgebung
- Eclipse Pleiades 4.7
- Java8
- Spring Boot 1.5.10
- PostgreSQL 9.6
- superagent.js
Ziel
Ziel sein zu können:
- Bildschirm hinzufügen
- Hinzufügen der Verarbeitung zwischen Client und Server (Hinzufügen der Restful API)
- Zugriff auf DB (MyBatis)
- Jede Datei verstehen
- Grundlegendes zu Controller, Service usw., die MVC entsprechen
- Erstellen und Bereitstellen von JAR mit Maven
- Bibliothek von Maven hinzufügen
- Hinzufügung der Zugriffsberechtigungsverarbeitung (Spring Security)
- Verständnis der Idee der Regeln aus den Einstellungen
Bibliotheksbeschreibung
Spring Boot
- Eine Sammlung vieler Spring-Bibliotheken
- Hello World kann mit der Mindestkonfiguration angezeigt werden
- Notwendige Einstellungen wie Protokolleinstellungen wurden im Voraus vorgenommen.
MyBatis
- Verbesserte Version von O / R Mapper. IBatis
- SQL kann nicht nur in XML, sondern auch in Anmerkungen geschrieben werden
Thmeleaf
- Template Engine. So etwas wie JSP.
- Während JSP ein Tag angibt, das JSP gewidmet ist, gibt Thymeleaf es mit einem Attribut an, das Thmeleaf gewidmet ist.
- Da der Browser nicht erkannte Attribute einfach ignoriert, bricht das Layout?
- Arbeitsteilung zwischen Designern und Programmierern
- Spring Boot empfiehlt Thymeleaf anstelle von JSP
Was ist Maven?
[Für Super-Anfänger] Maven Super-Einführung
- Build Management Tool
- Auf
pom.xml
setzen
- Externe Bibliotheken können mit "<Abhängigkeit>" verwendet werden.
Spezifische Erklärung
1. Erläuterung der Ordnerstruktur
Feder und MVC
- Controller
- Service
- Model
- View
1. Bildschirm hinzufügen
Verfahren
- Platzieren Sie HTML im Ordner
src / main / static / template
- Erstellen Sie in der Controller-Klasse eine Methode, die den erstellten HTML-Code zurückgibt.
SampleController.java
public ModelAndView index(ModelAndView mav) {
mav.setViewName("sample");
return mav;
}
Punkt
- Der an
setViewName
übergebene VIEW-Name erfordert keine Erweiterung (es spielt keine Rolle, ob er eine Erweiterung hat). Es scheint, dass es sowohl mit JSP als auch mit Thymeleaf verwendet werden kann.
2. Fügen Sie Restful API hinzu
POST API
- Superagent verwendet die Methoden "post" und "send"
POST API (Datei-Upload)
- superagent verwendet die Methoden
post
, field
, ...
Restful API
https://qiita.com/TakahiRoyte/items/949f4e88caecb02119aa
- API-Namenskonvention
- Verwenden Sie GET und POST ordnungsgemäß
3. Greifen Sie mit My Batis auf DB zu
Offizielle MyBatis-Website
XML
- mybatis-config.xml
src/main/resources/mybatis/mapper/*.xml
- Tags können verwendet werden, um SQL dynamisch zu generieren
- Das Attribut
parameterType
ist wahrscheinlich nicht erforderlich, da es die Informationen errät, die MyBatis erhalten wird.
DAO-Klasse
- Fügen Sie "@ Component" hinzu
- Rufen Sie Methoden wie
selectOne
und selectList
von sqlSession
auf
- Spring Security
Spring Security Reference
Thymeleaf + Spring Security integration basics
SecurityConfig.java
Stellen Sie die folgenden Elemente usw. ein.
- URL, auf die zugegriffen werden kann, ohne sich anzumelden
- URLs, auf die ohne die Rolle nicht zugegriffen werden kann
Thymeleaf
- Sie können so etwas wie "sec: authorize =" hasRole ('ROLE_USER') "" schreiben
5. Wie benutzt man Maven?
Einstellungen auf dem vorhandenen System
pom.xml
(Spring-Boot-Starter-Parent) für Spring Boot wird durch <Parent>
angegeben
- Die Version der zu verwendenden externen Bibliothek wird ebenfalls definiert.
- Wenn Sie die Version angeben möchten, geben Sie sie mit an.
- Nutzung der eigenen Bibliothek
- JavaDoc-Generierung
Maven-Update in Eclipse
Nachdem Sie pom.xml
geändert haben, aktualisieren Sie es mit" Rechtsklick auf Projekt> Maven> Projekt aktualisieren ".
JAR-Datei generieren (zur Bereitstellung)
- Wenn der Befehl
mvn install
ausgeführt wird, wird eine JAR-Datei im Ordner project / target
generiert.
- Wenn Sie das Ausführen des Testcodes überspringen möchten, führen Sie
mvn install -Dmaven.test.skip = true
aus.
6. Spring Boot bezogen
application.properties
https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
- Datei, die externe Einstellungen für Spring Boot definiert
- Sie können die Eingabe für den Schlüssel vervollständigen, indem Sie ihn im "Spring Property Editor" von Eclipse öffnen.
- Kann auch als Argument des Java-Befehls angegeben werden.
java -jar sample.jar --server.port = 8081
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
https://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html
Profile
https://area-b.com/blog/2015/01/30/2316/
http://endok.hatenablog.com/entry/2016/06/12/181900
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html
- Ein Mechanismus zum Umschalten der Einstellungswerte für jede Ausführungsumgebung.
- Wechseln Sie mit
@Profile (" test ")
usw. zur Java-Klasse.
- Thymeleaf verwendet "@ environment" zum Wechseln
https://blog.tagbangers.co.jp/ja/2015/01/18/thymeleaf-environment-properties
Einstellungen auf dem vorhandenen System
-
Definieren Sie 3 Arten von Profilen im vorhandenen System
--local: Starten Sie in der lokalen Umgebung
--test: Starten Sie auf dem Server der Entwicklungsumgebung
--release: Starten Sie auf dem Produktionsserver
-
Geben Sie im Argument des Java-Befehls ein Profil wie "--spring.profiles.active = local" an
-
Wir haben "application.properties" für jedes Profil vorbereitet.
--application.properties
: Standardeinstellungswert.
--application-test.properties
: Einstellungen für die Testumgebung.
--application-release.properties
: Einstellungen für die Produktionsumgebung. Deaktivieren Sie Tools wie Swagger und aktivieren Sie den Cache
--application-local.properties
: Persönliche Einstellungen. Vorausgesetzt, nicht zu begehen.
Bereitstellen
- Führen Sie
mvn install -Dmaven.test.skip = true
mit dem Befehl aus, um eine JAR-Datei zu generieren
- Wird im Ordner "Projekt / Ziel" generiert
- Starten Sie den Server mit dem Befehl java
- Es gibt eine Batch-Datei zum Starten (start.bat)
Protokolleinstellungen für vorhandene Projekte
- Annahme einer Kombination aus SLF4J (Schnittstelle) und Logback (Implementierung)
- Auf älteren Systemen gibt es viele Kombinationen von Commons-Logging (Schnittstelle) und log4j (Implementierung).
src/main/resources/logbakc.xml
- Fügen Sie dem von Anfang an vorbereiteten Protokollformat individuelle Einstellungen hinzu
- Generiere Feld
log
mit @ Slf4j
von Lombok
- Log4jdbc wurde übernommen, um die ausgeführte SQL (den Status, in dem der vorbereitete Wert auch ausgegeben wird) in das Protokoll auszugeben.
- https://qiita.com/YAKINIKU/items/5141c7205f3c67691c92
- Ausgabeprotokolle vor und nach Cntroller (AOP)
JUnit
Frühling @autowired
Übung
Voraussetzungen
- Entwicklungsumgebung ist vorhanden
- Fügen Sie vorhandenen Projekten mithilfe von Spring Boot Funktionen hinzu
- Ajax-Kommunikation verwendet superaget.js
Datenbank
create_table.sql
CREATE table user (
SERIAL user_id NOT NULL,
TEXT user_name NOT NULL,
TEXT section NOT NULL,
PRIMARY KEY (user_id)
);
Controller-Klasse hinzufügen
- Überprüfen Sie Anfrage / Antwort im Browser-Entwicklungstool
Erstellen einer HTML-Datei
Erstellen Sie "sample.html" und zeigen Sie den Inhalt von "sample.html" mit der URL "/ sample.html" an
- Beziehen Sie sich auf den Wert in der Nachrichtendatei (
message.properties
)
GET API erstellen (1 Parameter)
- Mit
@ RequestParam
erhalten Sie eine Nummer vom Client.
- Berechnen Sie auf der Serverseite das Quadrat der empfangenen Nummer und senden Sie es an den Client zurück
Erstellen Sie eine GET-API (übergeben Sie eine Information)
- Mit
@ RequestParam
erhalten Sie eine Nummer vom Client.
- Berechnen Sie auf der Serverseite das Quadrat der empfangenen Nummer und senden Sie es an den Client zurück
GET-API erstellen (mehrere Informationen übergeben)
- Erstellen Sie eine Bean-Klasse und erhalten Sie mehrere Informationen in dieser Klasse.
- Führen Sie auf der Serverseite eine Verarbeitung der empfangenen Informationen durch und senden Sie sie an den Client zurück
Erstellen Sie die POST-API
- Erstellen Sie eine POST-API.
--Erhalten Sie mehrere Informationen
- Führen Sie eine Verarbeitung der empfangenen Informationen durch und senden Sie sie an den Client zurück
- Rufen Sie eine mit JavaScript erstellte API auf
- Zeigen Sie den Inhalt der Antwort auf dem Bildschirm an
POST-API erstellen (Datei-Upload)
- Erstellen Sie eine POST-API
--Erhalten Sie eine Datei und eine Zeichenfolge
- Speichern Sie die empfangene Datei
- Rufen Sie eine mit JavaScript erstellte API auf
Zugriff auf die Datenbank
- Methode zur DAO-Klasse hinzufügen
- Rufen Sie eine Methode der DAO-Klasse von einer Methode in der Controller-Klasse auf
SELECT mit user_id
- Erstellen Sie eine Methode in der DAO-Klasse
- Eine Methode, um das Ergebnis durch "user_id" einzugrenzen
SELECT nach Benutzername oder Abteilung
- Schreiben Sie eine WHERE-Klausel mit
<if>
, <where>
- Wenn die an SQL übergebenen Informationen null sind, schränken Sie sie nicht ein
INSERT in die user
Tabelle
- Schreiben Sie eine WHERE-Klausel mit
<if>
, <where>
- Wenn die an SQL übergebenen Informationen null sind, schränken Sie sie nicht ein
Speichern Sie Informationen in einer hierarchischen Klasse mit einer einzelnen SELECT-Anweisung
- Schreiben Sie SQL-Anweisungen mit
<Sammlung>
Maven
Ändern Sie pom.xml
, um eine externe Bibliothek zu verwenden
- Überprüfen Sie das lokale Maven-Repository
- Überprüfen Sie die Eclipse-Projekteigenschaften
Generieren Sie eine JAR-Datei und starten Sie den Server mit dem Befehl Java
- Generieren Sie eine JAR-Datei mit dem Befehl mvn, ohne Eclipse zu verwenden
- Geben Sie die Portnummer im Argument des Java-Befehls an
- Ändern Sie das Profil und überprüfen Sie, ob die Einstellwerte usw. umgeschaltet sind
Überprüfen Sie das Protokoll
- Ändern Sie die Protokollebene in logback.xml und prüfen Sie, ob das Protokoll ausgegeben / nicht ausgegeben wird
Satzproblem
HTTP
- Erklären Sie den Unterschied zwischen HTTP GET und POST.
-Request / Response-Header und Body
Datenbank
- Erläutern Sie die Funktionen von O / R Mapper anhand der Vor- und Nachteile.
- Sie können "#" oder "$" verwenden, um Informationen von Java zu erhalten. Erklären Sie den Unterschied.
HelloWorld
Hinzufügen der Restful API
@RequestBody, @RequestParam usw.
Datei-Upload
Einführung von MyBatis
Spring Boot Gründliche Einführung Kapitel 14 Beispiel für ein Web-System
Servlet-Probleme
[Ergänzung] Vergleich mit Terasoluna