[JAVA] Créez une application Web Hello World avec Spring Framework + Jetty

Comme le titre l'indique, j'ai eu l'occasion de découvrir Java au travail pour la première fois en 10 ans, je vais donc l'étudier moi-même maintenant. C'est une étude d'un système existant en fonctionnement, donc ce n'est pas la dernière pile technologique, mais une combinaison légèrement plus ancienne.

Les applications Web ne sont pas déployées, exécutez simplement localement.

Les outils à utiliser et le niveau de connaissance de l'auteur.

Préparation environnementale

Java a été installé auparavant, je vais donc l'utiliser tel quel. Java 8 au lieu de 14 ou 11 en raison de circonstances adultes.

$ java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

Comme c'est mac pour le moment, mettez Maven avec de la bière.

$ brew install maven
(Abréviation)
$ mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
(Abréviation)
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.6", arch: "x86_64", family: "mac"

Installation d'IntelliJ

Également installé la communauté IntelliJ IDEA. Depuis que je l'ai entré avec GUI, la méthode est omise.

Modifiez les paramètres selon vos préférences. Cela a été utile. https://www.karakaram.com/intellij-idea-always-do-things/

J'utilise le style de base tel quel, mais ce n'est pas bon pour la santé mentale, alors j'ai juste joué un peu avec Keymap (surtout C-h, C-d).

Création de projet

Pour le moment, créez un projet vide sur GitHub et clonez-le. Ceci est le répertoire de travail.

$ git clone https://github.com/sekikatsu36/spring-sample.git
$ cd spring-sample
$ git config --local user.name "sekikatsu36"
$ git config --local user.email "(Abréviation)"

Créez un nouveau projet Maven avec IntelliJ. Laissez les paramètres par défaut sans modifier aucun paramètre.

スクリーンショット 2020-06-27 13.29.07.png スクリーンショット 2020-06-27 13.36.29.png

Ceci termine l'état initial.

$ ls -a
.			.DS_Store		.gitignore		pom.xml			src
..			.git			.idea			spring-sample.iml

paramètres du cadre de ressort

Il existe de nombreux articles de démarrage de printemps sur le Web et peu de frameworks de printemps. Cependant, j'ai besoin d'un framework Spring maintenant, j'ai donc modifié pom.xml pour le rendre utilisable.

Ceci est le formulaire rempli.

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>org.example.api</groupId>
    <artifactId>spring-sample</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <!--  pom.Autoriser la version à être gérée comme une variable en xml-->
        <spring.version>5.2.5.RELEASE</spring.version>
        <jetty.version>9.4.11.v20180605</jetty.version>
    </properties>

    <dependencies>
        <!-- spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- jetty -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.2</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>9.4.14.v20181114</version>
            </plugin>
        </plugins>
    </build>
</project>

Au début, je n'écrivais que les «propriétés» et les «dépendances». D'autres points seront décrits plus loin.

Si vous obtenez une erreur dans la référence

Dans mon environnement, j'ai eu une erreur indiquant que ʻorg.springframework.spring-webmvc: 5.2.5.RELEASE` n'a pas pu être trouvé. Il existe dans Repository.

Faites ce qui suit

mvn clean install

résultat

Ecrire la source

Fondamentalement, vous pouvez le faire selon https://qiita.com/kasa_le/items/6aaf17823db67c951fb0. Cependant, puisque cet article est ʻIntelliJ IDEA Ultimate, dans ʻIDEA Community, [Create View](https://qiita.com/kasa_le/items/6aaf17823db67c951fb0#view%E3%81%AE%E4%BD% Après 9C% E6% 88% 90), cela ne fonctionne pas tel quel.

Pour le moment, le processus de création du contrôleur et du dossier de vue se termine de cette manière. Ce qui suit est fait.

/src/main
  /java/org/example/controllers
    IndexController.java
  /webapp/WEB-INF
    /views
    web.xml
    dispatcher-servlet.xml

Créer un fichier JSP

Dans le cas de l'édition Community, il semble que JSP / JSPX n'apparaisse pas lors de la création d'un nouveau fichier car il n'y a pas de support Spring. https://www.jetbrains.com/ja-jp/idea/features/editions_comparison_matrix.html

Donc, normalement sélectionnez Fichier et faites tout vous-même.

index.jsp


<%@ page import="org.example.controllers.IndexController" %>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
        <title>Spring Test Page</title>
    </head>
    <body>
        <p>${someAttribute}</p>
    </body>
</html>

Commencez avec Jetty

Pour la commodité des adultes, utilisez Jetty au lieu de Tomcat. Ultimate (version payante) d'IntelliJ IDEA semble avoir Tomcat intégré par défaut (?), Mais comme il s'agit d'une communauté, il ne peut pas être utilisé de toute façon. Jetty n'a pas besoin d'être installé à l'avance, c'est donc facile.

En référence à http://zetcode.com/spring/jetty/, j'ai ajouté ce qui suit à pom.xml.


   <packaging>war</packaging>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <scope>provided</scope>
    </dependency>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.2</version>
            </plugin>
            <plugin>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>9.4.14.v20181114</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

Dans cet état

mvn jetty:run

Lorsque vous accédez à http: //0.0.0.0: 8080 en exécutant, Hello World s'affiche en toute sécurité.

スクリーンショット 2020-06-28 19.37.48.png

Si vous ne spécifiez pas les versions source et cible avec maven-compiler-plugin, cela semble être 5 et une erreur se produit. http://orionb312.hatenablog.com/entry/2018/03/06/233734

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project spring-sample: Compilation failure: Compilation failure: 
[ERROR]L'option source 5 n'est actuellement pas prise en charge. Veuillez utiliser 7 ou une version ultérieure.
[ERROR]L'option cible 5 n'est actuellement pas prise en charge. Veuillez utiliser 7 ou une version ultérieure.

fin

Le produit fini est ci-dessous. https://github.com/sekikatsu36/spring-sample

Pour le moment, j'ai pu confirmer que Spring fonctionne. Je veux faire un peu plus.

--Je souhaite utiliser une API qui n'est pas WebPage (utilisez Jersey?)

Recommended Posts

Créez une application Web Hello World avec Spring Framework + Jetty
Créer un serveur API Web avec Spring Boot
Développement d'applications Web Spring5 MVC avec Visual Studio Code Hello World Creation
Hello World avec Spring Boot
Bonjour tout le monde avec Spring Boot!
Hello World avec Spring Boot
Bonjour tout le monde! Avec Asakusa Framework!
Hello World (application console) avec Apache Camel + Spring Boot 2
Créez une application avec Spring Boot 2
Jusqu'à "Hello World" avec Spring Boot
(Intellij) Hello World avec Spring Boot
Créez une application avec Spring Boot
Créez un PDF avec itext7 ~ HelloWorld ~
[Swift] Créez un projet avec Xcode (ver 12.1) et affichez "Hello, World!"
[Rails6] Créer une nouvelle application avec Rails [Débutant]
Créez une application Web simple avec Dropwizard
Hello World avec Eclipse + Spring Boot + Maven
Créez un lot à la demande simple avec Spring Batch
[Rails 5] Créer une nouvelle application avec Rails [Débutant]
Comment Spring Security fonctionne avec Hello World
(IntelliJ + gradle) Hello World avec Spring Boot
Créez un projet de développement d'application Spring Boot avec la commande cURL + tar
Développement d'applications Web Spring Boot2 avec création de Visual Studio Code Hello World
Créez un site Web avec Spring Boot + Gradle (jdk1.8.x)
Bonjour tout le monde! Avec Spring Boot (Marven + éditeur de texte)
Hello World à une vitesse explosive avec Spring Initializr! !! !!
Créons un framework Web ultra-simple avec Java
[Java] Hello World avec Java 14 x Spring Boot 2.3 x JUnit 5 ~
Afficher un simple Hello World avec SpringBoot + IntelliJ
Essayez d'afficher Hello World avec Spring + Gradle
Construisez un système WEB avec Spring + Doma + H2DB
Créer un environnement de développement Spring Boot avec docker
Hello World avec Java Servlet et JSP (démarrage facile du serveur Web avec Maven + Jetty)
Hello World, une application d'interface graphique multiplateforme avec Groovy fonctionnant sur la plate-forme Java
Faisons une application TODO avec Java 2 Je veux créer un modèle avec Spring Initializr et créer Hello world
Hello World avec Micronaut
Construisez un système WEB avec Spring + Doma + H2DB + Thymeleaf
Hello World (API REST) avec Apache Camel + Spring Boot 2
Créez une application de chat avec WebSocket (Tyrus) + libGDX + Kotlin
Créer Restapi avec Spring Boot (jusqu'à l'exécution de l'application)
Créez un site de démonstration simple avec Spring Security avec Spring Boot 2.1
Comparaison Hello World entre Spark Framework et Spring Boot
Construisez un système WEB avec Spring + Doma + H2DB Partie 2
[Rails] J'ai essayé de créer une mini application avec FullCalendar
La première application WEB avec Spring Boot-Making a Pomodoro timer-
Bonjour tout le monde avec VS Code!
Créez un CRUD simple avec SpringBoot + JPA + Thymeleaf ① ~ Hello World ~
J'ai recherché un framework web avec Gem en Ruby
Créez un terrain de jeu avec Xcode 12
Jusqu'à ce que vous créiez une application Web avec Servlet / JSP (Partie 1)
Créer un micro service avec Spring Boot
Présentation de Spring Boot2, un framework Java pour le développement Web (pour les débutants)
Hello World avec SpringBoot / Gradle
Créez une application Web Spring Boot qui utilise IBM Cloudant et déployez-la sur Cloud Foundry
Créez un serveur Web simple avec la bibliothèque standard Java com.sun.net.httpserver
Créons une application Web de gestion de livres avec Spring Boot part1
Créez une application mémo avec Tomcat + JSP + Servlet + MySQL à l'aide d'Eclipse
Créons une application Web de gestion de livres avec Spring Boot part3
Créer une JVM pour la distribution d'applications avec les modules JDK 9 et jlink
Créons une application Web de gestion de livres avec Spring Boot part2