[JAVA] Aufbau einer IntelliJ + Docker (APP + DB) + SpringBoot (Maven) -Umgebung

Annahme

■ JAVA ist installiert Dieses Mal verwende ich Java SE 14 https://www.oracle.com/java/technologies/javase-downloads.html

■ IntelliJ muss installiert sein [Offizieller Download IntelliJ IDEA] https://www.jetbrains.com/ja-jp/idea/download/#section=windows

■ Docker muss installiert sein Weiter unten erfahren Sie, wie Sie bauen [Docker kostenlos unter Windows 10 erstellen] https://qiita.com/SSM3G/items/79b7becc2169aac8ec6f

Ziel

Während der Verwendung von IntelliJ Erstellen Sie mit Docker einen Anwendungsserver und einen Datenbankserver Ziel ist es, den Inhalt der Datenbank anhand von Beispielprojekten und -quellen anzuzeigen

** Greifen Sie auf http: // localhost / zu und zeigen Sie den folgenden Bildschirm an ** screenshot.47.jpg

Erstellen Sie ein Spring Boot-Projekt --Spring Initializr -

https://start.spring.io/ Wählen Sie unter der obigen URL aus, was Sie zum Erstellen eines Projekts benötigen Sie können es einfach mit GENERATE erstellen Fügen Sie für Abhängigkeiten etwas hinzu, das vorerst verwendet zu werden scheint. Kann später aus pom.xml hinzugefügt werden screenshot.41.jpg

IntelliJ

Öffnen Sie die zuvor unter "Öffnen oder Importieren" erstellte Datei.

Erstellen Sie docker-compose.yml unter "demo"

** Ergänzung ** Klicken Sie hier, wenn Sie nicht einmal eine Zeile in docker-compose.yml verstehen [Irgendwie verstehe docker-compose.yml] https://qiita.com/SSM3G/items/4e5fc3e880fff0de3bfe

docker-compose.yml


version: '3'
services:
  app:
    image: openjdk:14-jdk-alpine
    ports:
      - "80:8080"
    volumes:
      - .:/app
    working_dir: /app
    command: ./mvnw spring-boot:run
    environment:
      DATASOURCE: jdbc:mysql://db:3306/sample
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: sample
      MYSQL_USER: user
      MYSQL_PASSWORD: passwrod
    command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
    volumes:
      - ./docker/mysql:/docker-entrypoint-initdb.d
    ports:
      - "3306:3306"

src\main\resources\application.properties Schreiben Sie die Einstellungen für die Verbindung zur DB Stellen Sie diesmal eine DB-Verbindung mit JDBC her

application.properties


spring.datasource.url=${DATASOURCE:jdbc:mysql://localhost:3306/sample}
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

Erstellen Sie als Nächstes Beispieldaten Erstellen Sie Docker \ mysql \ sample.sql unter "Demo".

sample.sql


SET CHARSET UTF8;
create table sample.users(
  id bigint(20) unsigned AUTO_INCREMENT PRIMARY KEY,
  name varchar(100),
  age tinyint,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at DATETIME
);
INSERT INTO sample.users(name,age) VALUES ('Taro',30),('Jiro',25),('Saburo',19);

Erstellen Sie dann den vertrauten Controller und HTML src\main\java\com\example\demo\controller\AppController.java

AppController


package com.example.demo.controller;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;
import java.util.Map;

@Controller
public class AppController {
    final
    JdbcTemplate jdbcTemplate;

    public AppController(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    @RequestMapping("/")
    String index(Model model) {
        List<Map<String, Object>> users = jdbcTemplate.queryForList("select * from sample.users");
        model.addAttribute("title", "Benutzerliste");
        model.addAttribute("users", users);
        return "index";
    }
}

src\main\resources\templates\index.html

index.html


<!DOCTYPE html>
<html lang="ja" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        table {
            border-collapse: collapse;
        }

        th, td {
            padding: 3px 5px 3px 5px;
            border: 1px solid #aaa;
        }

        th {
            background-color: #eee;
        }
    </style>
</head>
<body>
<h1 th:text="${title}"></h1>
<table>
    <thead>
    <tr>
        <th>#</th>
        <th>name</th>
        <th>age</th>
    </tr>
    </thead>
    <tbody>
    <tr th:each="user: ${users}">
        <td th:text="${user['id']}"></td>
        <td th:text="${user['name']}"></td>
        <td th:text="${user['age']}"></td>
    </tr>
    </tbody>
</table>
</body>
</html>

Docker Bereiten Sie sich als Nächstes auf Docker vor Wenn Sie Docker sicher installieren können Das Docker-Symbol wird unten rechts angezeigt. Öffnen Sie daher den Einstellungsbildschirm. Expose daemon on tcp://localhost:2375 without TLS Überprüfen Sie, ob Sie ohne DC wechseln möchten screenshot.48.jpg

Öffnen Sie den Einstellungsbildschirm mit IntelliJ Strg + Alt + S Installieren Sie "Docker" mit Plugins Anschließend wird das Docker-Element auf dem Einstellungsbildschirm angezeigt. Drücken Sie +, um Docker hinzuzufügen, und Sie sind fertig

Starten Sie Docker über Dienste im unteren Menü von IntelliJ Ich denke, es wird beginnen, wenn es kein Problem gibt screenshot.51.jpg

Öffnen Sie docker-compose.yml und starten Sie es screenshot.62.jpg

Es gibt kein Problem, wenn die App- und DB-Container ausgeführt werden screenshot.63.jpg screenshot.64.jpg

Hinweis Der Start der App dauert einige Zeit. Warten Sie also etwa 3 bis 5 Minuten. Es wird nach einer Weile beginnen screenshot.56.jpg

Funktionsprüfung

Greifen wir auf http: // localhost / zu Es wird abgeschlossen, wenn die Benutzerliste angezeigt wird

Führen Sie die DB-Operation von IntelliJ aus

Im Menü auf der rechten Seite befindet sich die Datenbank. Drücken Sie also + Data Source > MySQL screenshot.66.jpg

screenshot.67.jpg

Füllen Sie wie in der Abbildung oben gezeigt aus User:root Password:password

docker-compose.yml


MYSQL_ROOT_PASSWORD: password

Da es auf gesetzt ist, ist es der obige Wert. Bearbeiten Sie es später nach Belieben

Vergessen Sie nicht, Schemas auszuwählen screenshot.68.jpg

Da wird die DB-Tabelle angezeigt Versuchen wir, einen Datensatz hinzuzufügen screenshot.69.jpg screenshot.70.jpg screenshot.71.jpg screenshot.72.jpg

Wenn Sie auf Ihren lokalen Host zugreifen und dieser aktualisiert wird, sind Sie fertig! Vielen Dank für Ihre harte Arbeit \ (^ o ^) / Danach passen Sie bitte an, wie Sie möchten und vertiefen Sie Ihr Wissen

Recommended Posts

Aufbau einer IntelliJ + Docker (APP + DB) + SpringBoot (Maven) -Umgebung
Aufbau der Rails Docker-Umgebung
Erstellen einer Entwicklungsumgebung mit IntelliJ IDEA + Maven + Tomcat 9
Konstruktionsnotiz für die MySQL 5.7 (Docker) -Umgebung
Redmine (Docker) Umgebungskonstruktionsnotiz
[Docker] Rails 5.2-Umgebungskonstruktion mit Docker
Aufbau der Docker x Spring Boot-Umgebung
[Docker] postgres, pgadmin4-Umgebungskonstruktion
Erstellen Sie die Node.js-Umgebung mit Docker Compose
Umgebungsbau mit Docker für Anfänger
Konstruktion der Laravel + Docker Laradock-Nutzungsumgebung
Konstruktionsverfahren für Rails on Docker-Umgebungen
[Umgebungskonstruktion mit Docker] Rails 6 & MySQL 8
[Java & SpringBoot] Umgebungskonstruktion für Mac
[Hinweis] Verfahren zur Erfassung der Docker-Version Db2
SQL-Anweisungslernen ~ Umgebungskonstruktion ~ Docker + MySQL
Schienenumgebungskonstruktion mit Docker (persönliche Apokalypse)
Aufbau einer Laravel-Entwicklungsumgebung mit Docker (Mac)
Sapper × Go (Echo) × Aufbau einer Docker-Entwicklungsumgebung
Docker Intellij
[Java] Verbindung mit lokaler Datenbank (IntelliJ + SpringBoot)
[Docker] Entwicklung der Entwicklungsumgebung Rails6 / Ruby2.7 / MySQL8
Aufbau der Spring Boot + Docker Java-Entwicklungsumgebung
Erstellen einer Umgebung für Laravel + MySQL + phpMyadmin mit Docker
Machen Sie die SpringBoot1.5 + Gradle4.4 + Java8 + Docker-Umgebung mit Java11 kompatibel
Erstellen einer Kaggle-Umgebung mit offiziellem Docker und vscode
DB-Umgebungskonstruktion mit DBFlute Intro + H2-Datenbank
Konstruktions- und Entwicklungsverfahren für lokale WordPress-Umgebungen mit Docker
[Java] Umgebungskonstruktion
[Frühling] Umweltbau
Docker + Spring-Boot-Start
So erstellen Sie die Docker + Springboot-App (für grundlegendes Lernen)
Erstellen einer Datenbankumgebung mit Docker in Spring Boot (IntellJ)
Erstellung einer Datenanalyseumgebung mit Docker (persönliches Memorandum)