[JAVA] Construction de l'environnement IntelliJ + Docker (APP + DB) + SpringBoot (Maven)

supposition

■ JAVA est installé Cette fois, j'utilise Java SE 14 https://www.oracle.com/java/technologies/javase-downloads.html

■ IntelliJ doit être installé [Téléchargement officiel IntelliJ IDEA] https://www.jetbrains.com/ja-jp/idea/download/#section=windows

■ Docker doit être installé Voir ci-dessous pour savoir comment construire [Créer Docker gratuitement sur Windows 10] https://qiita.com/SSM3G/items/79b7becc2169aac8ec6f

Cible

Lors de l'utilisation d'IntelliJ Créer un serveur d'applications et un serveur de base de données avec Docker Vise à afficher le contenu de la base de données à l'aide d'exemples de projets et de sources

** Accédez à http: // localhost / et affichez l'écran ci-dessous ** screenshot.47.jpg

Créer un projet Spring Boot --Spring Initializr -

https://start.spring.io/ Sélectionnez ce dont vous avez besoin pour créer un projet à l'URL ci-dessus Vous pouvez facilement le créer en GENERATE Ajoutez quelque chose qui semble être utilisé pour les dépendances pour le moment. Peut être ajouté plus tard à partir de pom.xml screenshot.41.jpg

Vous pouvez le déposer sous forme de fichier zip, alors décompressez-le et stockez-le dans un répertoire approprié.

IntelliJ

Ouvrez le fichier créé précédemment à partir de "Ouvrir ou importer"

Créez docker-compose.yml sous "demo"

** Addenda ** Cliquez ici si vous ne comprenez même pas une ligne dans docker-compose.yml [Comprenez en quelque sorte 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 Ecrire les paramètres de connexion au DB Cette fois, établissez une connexion à la base de données à l'aide de JDBC

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

Ensuite, créez des exemples de données Créez docker \ mysql \ sample.sql sous "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);

Ensuite, créez le contrôleur et le HTML familiers 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", "Liste d'utilisateur");
        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 Ensuite, préparez-vous pour Docker Si vous pouvez installer Docker en toute sécurité L'icône Docker est affichée en bas à droite, alors ouvrez l'écran Paramètres. Expose daemon on tcp://localhost:2375 without TLS Cocher pour changer sans TLC screenshot.48.jpg

Ouvrez l'écran de configuration avec IntelliJ Ctrl + Alt + S Installez "Docker" avec des plugins Ensuite, l'élément Docker s'affiche sur l'écran de réglage. Appuyez sur + pour ajouter Docker et vous avez terminé

Lancez Docker à partir des services dans le menu inférieur d'IntelliJ Je pense que ça va commencer s'il n'y a pas de problème screenshot.51.jpg

Ouvrez docker-compose.yml et démarrez-le screenshot.62.jpg

Il n'y a aucun problème si l'application et les conteneurs de base de données sont en cours d'exécution screenshot.63.jpg screenshot.64.jpg

Mise en garde L'application prend du temps pour démarrer pour la première fois, alors attendez environ 3 à 5 minutes. Ça va commencer après un moment screenshot.56.jpg

Contrôle de fonctionnement

Accédons à http: // localhost / Il sera complété lorsque la liste des utilisateurs sera affichée

Effectuer une opération de base de données à partir d'IntelliJ

Il y a une base de données dans le menu de droite, alors appuyez sur + Data Source > MySQL screenshot.66.jpg

screenshot.67.jpg

Remplissez comme indiqué dans l'image ci-dessus User:root Password:password

docker-compose.yml


MYSQL_ROOT_PASSWORD: password

Puisqu'il est défini comme, ce sera la valeur ci-dessus. Modifiez-le plus tard comme vous le souhaitez

N'oubliez pas de sélectionner les schémas screenshot.68.jpg

Puisque la table DB est affichée Essayons d'ajouter un enregistrement screenshot.69.jpg screenshot.70.jpg screenshot.71.jpg screenshot.72.jpg

Si vous accédez à votre hôte local et qu'il est mis à jour, vous avez terminé! Merci pour votre travail acharné \ (^ o ^) / Après cela, veuillez personnaliser comme vous le souhaitez et approfondir vos connaissances

Recommended Posts

Construction de l'environnement IntelliJ + Docker (APP + DB) + SpringBoot (Maven)
Construction de l'environnement Rails Docker
Création d'un environnement de développement à l'aide d'IntelliJ IDEA + Maven + Tomcat 9
Mémo de construction de l'environnement MySQL 5.7 (Docker)
Mémo de construction de l'environnement Redmine (Docker)
[Docker] Construction de l'environnement Rails 5.2 avec docker
Construction de l'environnement Docker × Spring Boot
[Docker] postgres, construction de l'environnement pgadmin4
Créer un environnement Node.js avec Docker Compose
Construction d'environnement avec Docker pour les débutants
Construction de l'environnement d'utilisation Laravel + Docker Laradock
Rails sur la procédure de construction de l'environnement Docker
[Construction de l'environnement avec Docker] Rails 6 et MySQL 8
[Java & SpringBoot] Construction de l'environnement pour Mac
[Note] Procédure d'acquisition de l'environnement Docker version Db2
Apprentissage des instructions SQL ~ Construction de l'environnement ~ Docker + MySQL
Construction d'environnement de rails avec Docker (apocalypse personnelle)
Construction de l'environnement de développement Laravel avec Docker (Mac)
Sapper × Go (écho) × Construction de l'environnement de développement Docker
Docker Intellij
[Java] Connexion avec la base de données locale (IntelliJ + SpringBoot)
[Docker] Construction de l'environnement de développement Rails6 / Ruby2.7 / MySQL8
Construction de l'environnement de développement Java Spring Boot + Docker
Construire un environnement pour Laravel + MySQL + phpMyadmin avec Docker
Rendre l'environnement SpringBoot1.5 + Gradle4.4 + Java8 + Docker compatible avec Java11
Créer un environnement Kaggle à l'aide de Docker officiel et de vscode
Construction d'environnement DB avec DBFlute Intro + H2 Database
Procédure de construction et de développement de l'environnement local Wordpress avec Docker
[Java] Construction de l'environnement
[Printemps] Construction de l'environnement
Démarrage Docker + Spring-boot
Comment créer l'application Docker + Springboot (pour l'apprentissage de base)
Création d'un environnement de base de données avec Docker dans Spring Boot (IntellJ)
Construction d'un environnement d'analyse de données avec Docker (mémorandum personnel)