[JAVA] Spring Boot beginnt mit dem Kopieren

Für Leute, die Spring Boot von Grund auf neu starten, werde ich einen Artikel mit dem Ziel schreiben, etwas zu bewegen, wenn ich es vorerst kopiere. Es basiert auf dem grundlegenden Erstellen eines RESTful-Webdienstes.

Umgebung

$ sw_vers
ProductName:	Mac OS X
ProductVersion:	10.14.3
BuildVersion:	18D109
$ mvn --version
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T03:41:47+09:00)
Maven home: /usr/local/Cellar/maven/3.6.0/libexec
Java version: 1.8.0_25, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.3", arch: "x86_64", family: "mac"
$

Es ist ein sogenannter normaler Mac, aber wenn Sie Maven haben, können Sie ihn unter Windows fast genauso ausführen.

Wir werden auch mit Curl kommunizieren.

$ curl --version
curl 7.54.0 (x86_64-apple-darwin18.0) ...
$

Versuchen

Kopieren Sie zunächst pom.xml aus dem Folgenden.

$ mkdir myproject && cd $_
$ cat pom.xml

pom.xml


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>myproject</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
    </parent>

    <!-- Additional lines to be added here... -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <!-- (you don't need this if you are using a .RELEASE version) -->
    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots><enabled>true</enabled></snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <url>https://repo.spring.io/milestone</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <url>https://repo.spring.io/snapshot</url>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <url>https://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

Erstellen Sie ein Verzeichnis, in dem Sie die Quell- und Eigenschaftendateien ablegen.

$ mkdir -p src/main/java
$ mkdir -p src/main/resources

Erstellen Sie eine Datei, die von der Magie geschrieben wurde, mit der Spring Boot gestartet wird.

$ cat src/main/java/nu/mine/kino/springboot/SampleTomcatApplication.java

SampleTomcatApplication.java


package nu.mine.kino.springboot;

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

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

}

Erstellen Sie den folgenden Controller, der die WEB-Funktion beschreibt.

$ cat src/main/java/nu/mine/kino/springboot/GreetingController.java

GreetingController.java


package nu.mine.kino.springboot;

import java.util.concurrent.atomic.AtomicLong;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class GreetingController {

    private static final String template = "Hello, %s!";

    private final AtomicLong counter = new AtomicLong();

    @RequestMapping("/greeting")
    public Greeting greeting(
            @RequestParam(value = "name", defaultValue = "World") String name) {
        return new Greeting(counter.incrementAndGet(),
                String.format(template, name));
    }
}

class Greeting {

    private final long id;

    private final String content;

    public Greeting(long id, String content) {
        this.id = id;
        this.content = content;
    }

    public long getId() {
        return id;
    }

    public String getContent() {
        return content;
    }
}

Erstellen Sie eine Eigenschaftendatei, die Ihre Einstellungen beschreibt.

$ cat src/main/resources/application.properties

application.properties


server.compression.enabled: true
server.compression.min-response-size: 1
server.connection-timeout=5000
server.port=8080
server.address=0.0.0.0

server.port ist die zu startende Portnummer. Wenn der Standardwert 8080 akzeptabel ist, ist tatsächlich keine Beschreibung erforderlich. server.address ist ein Zauberspruch, um eine Verbindung von anderen Computern herzustellen.

Anlaufen

Fangen wir an.

$ pwd
/xxxxx/xxx/myproject

$ mvn spring-boot:run

Verschiedene Dinge werden angezeigt,
...
2019-02-26 14:03:46.797  INFO 40644 --- [           main] n.m.k.s.SampleTomcatApplication          : 
Started SampleTomcatApplication in 4.749 seconds (JVM running for 11.845)

Es ist in Ordnung!

Versuchen Sie nach dem Start, über eine andere Eingabeaufforderung zu kommunizieren.

$ curl http://localhost:8080/greeting
{"id":1,"content":"Hello, World!"}
$

Es hat so gut funktioniert!

Stoppen Sie den Spring Boot WEB-Server (Tomcat), den Sie mit Strg-C gestartet haben. Danke für Ihre Unterstützung.

Bonus

Krug

$ mvn clean package

Jetzt haben Sie eine ausführbare JAR-Datei, die Tomcat enthält.

$ java -jar target/myproject-0.0.1-SNAPSHOT.jar

Auf diese Weise startet Tomcat auf die gleiche Weise wie der vorherige mvn spring-boot: run. ..

Laden Sie mit Eclipse

$ mvn eclipse:clean eclipse:eclipse

Nachdem Sie eine .project / .classpath-Datei haben, können Sie diese in Eclipse importieren.

Formatieren Sie den JSON des Rückgabewerts und geben Sie ihn zurück

Fügen Sie application.properties die folgenden Einstellungen hinzu.

$ cat src/main/resources/application.properties

application.properties


...
spring.jackson.serialization.indent-output=true

Strg-C, neu starten mit mvn spring-boot: run und dann mit curl verbinden ...

$ curl http://localhost:8080/greeting
{
  "id" : 1,
  "content" : "Hello, World!"
}

Der JSON wurde formatiert. ..

ähnliche Links

Recommended Posts

Spring Boot beginnt mit dem Kopieren
Spring Boot beginnend mit Docker
Mit Spring Boot herunterladen
Generieren Sie mit Spring Boot einen Barcode
Hallo Welt mit Spring Boot
Beginnen Sie mit Spring Boot
Hallo Welt mit Spring Boot!
Führen Sie LIFF mit Spring Boot aus
SNS-Login mit Spring Boot
Hallo Welt mit Spring Boot
Setzen Sie Cookies mit Spring Boot
Verwenden Sie Spring JDBC mit Spring Boot
Modul mit Spring Boot hinzufügen
Erste Schritte mit Spring Boot
Erstellen Sie mit Spring Boot einen Mikrodienst
Mail mit Spring Boot verschicken
[Java] [Spring Boot] Geben Sie das Laufzeitprofil an - Spring Boot beginnend mit NetBeans
Verwenden Sie die Standardauthentifizierung mit Spring Boot
gRPC auf Spring Boot mit grpc-spring-boot-Starter
Hot Deploy mit Spring Boot-Entwicklung
Spring Boot Programmierung mit VS Code
Bis "Hallo Welt" mit Spring Boot
Erstellen Sie eine Anfrage-App mit Spring Boot
Erhalten Sie Validierungsergebnisse mit Spring Boot
(Intellij) Hallo Welt mit Spring Boot
Erstellen Sie eine App mit Spring Boot
Google Cloud Platform mit Spring Boot 2.0.0
Ich habe GraphQL mit Spring Boot ausprobiert
[Java] LINE-Integration mit Spring Boot
Beginnend mit Spring Boot 0. Verwenden Sie Spring CLI
Ich habe Flyway mit Spring Boot ausprobiert
Spring Boot ab Null Teil 2
Spring Boot ab Null Teil 1
Die Nachrichtenkooperation begann mit Spring Boot
Verarbeitung beim Starten einer Anwendung mit Spring Boot
Hallo Welt mit Eclipse + Spring Boot + Maven
Senden Sie regelmäßige Benachrichtigungen mit LineNotify + Spring Boot
Führen Sie einen Transaktionsbestätigungstest mit Spring Boot durch
HTTPS mit Spring Boot und Let's Encrypt
Fordern Sie Spring Boot heraus
Versuchen Sie es mit Spring Boot mit VS-Code
Starten Sie die Entwicklung von Webanwendungen mit Spring Boot
Starten Sie die Nginx + Spring Boot-Anwendung mit Docker-Compose
Ich habe Lazy Initialization mit Spring Boot 2.2.0 ausprobiert
Spring Boot Form
Implementieren Sie CRUD mit Spring Boot + Thymeleaf + MySQL
Asynchrone Verarbeitung mit Spring Boot unter Verwendung von @Async
Implementieren Sie die Paging-Funktion mit Spring Boot + Thymeleaf
Spring Boot Denken Sie daran
gae + frühlingsstiefel
Javaw.exe Fehler beim Starten von Spring Boot (STS)
(IntelliJ + gradle) Hallo Welt mit Spring Boot
Verwenden Sie den Cache mit EhCashe 2.x mit Spring Boot
Formularklassenvalidierungstest mit Spring Boot
Führen Sie die WEB-Anwendung mit Spring Boot + Thymeleaf aus
Erreichen Sie die BASIC-Authentifizierung mit Spring Boot + Spring Security
Erstellen Sie eine Website mit Spring Boot + Gradle (jdk1.8.x)
Konfigurieren Sie die Spring Boot-Anwendung mit dem Maven Multi-Modul