Vscode + Docker + Gradle + Spring boot 構築
①javaの環境をRemote - Containers(Vscodeの拡張機能)で構築
②Dockerコンテナ内でSpring Bootを構築
前提条件
- Vscode上で作成
- Remote - Containers(Vscodeの拡張機能)
marketplace.visualstudio.com - Dockerが使える環境が必要です
- install 確認コマンド
docker version
構成
vscode + docker + spring の最終的な構成となります。
. └── demo ├── HELP.md ├── bin │ ├── main │ │ ├── application.properties │ │ ├── com │ │ │ └── example │ │ │ └── demo │ │ │ ├── DemoApplication.class │ │ │ ├── ServletInitializer.class │ │ │ └── controller │ │ │ └── HelloController.class │ │ └── templates │ │ └── index.html │ └── test │ └── com │ └── example │ └── demo │ └── DemoApplicationTests.class ├── build.gradle ├── gradle │ └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── src ├── main │ ├── java │ │ └── com │ │ └── example │ │ └── demo │ │ ├── DemoApplication.java │ │ ├── ServletInitializer.java │ │ └── controller │ │ └── HelloController.java │ └── resources │ ├── application.properties │ ├── static │ └── templates │ └── index.html └── test └── java └── com └── example └── demo └── DemoApplicationTests.java
必要なファイル
今回はRemote - Containers(Vscodeの拡張機能)で環境構築していくため、特に必要なし
手順① Remote-Container
- Vscodeのコマンドパレット起動
ctrl + shift + p
もしくは command + shift + p
- Remote - containerの機能を使ってjava環境作成
Remote-Containers:Add Development Container Configuration Files
選択
Java選択
11選択
16選択
Gradleを選択
以下のフォルダとファイルが作成される
devcontainer.jsonにextensionを追加
"vscjava.vscode-spring-initializr"
spring boot 作成時に使う
"extensions": [ "vscjava.vscode-java-pack", "vscjava.vscode-spring-initializr" ],
右下に表示されたReopen Container
を選択
もしくは右下の緑色の箇所をクリックしReopen Container
を選択
左下に下記の表示が出たらコンテナ内にアクセス成功
手順② Spring Boot 作成
- Vscodeのコマンドパレット起動
ctrl + shift + p
もしくはcommand + shift + p
create java project選択
spring boot 選択
Gradle Project選択
2.5.4選択
Java選択
ルートパッケージ名 src/main/java直下の名前を選択
プロジェクト名
今回はWarを選択
11を選択し、開発環境のJava versionと合わせる
spring web
とThymeleaf
選択
workspaceを作成したい場所を選択
openを選択すると作成したプロジェクトを開く
以下のフォルダとファイルが作成される
- controllerとviewを追加
以下のパスに追加する
src/main/java/com/example/demo/controller/HelloController.java
HelloController.java
package com.example.demo.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HelloController { @RequestMapping("/hello") public String index(){ return "hello"; } }
index.html
以下のパスに追加する
src/main/resources/templates/index.html
<html xmlns:th="http://www.thymeleaf.org"> <h1>helloworld</h1> </html>
- VscodeにDebug構成を追加する
構成の追加
launch.json追加
- Spring boot実行
デバッグなしで実行
起動
http://localhost:8080 にアクセス
GiitHub
次回
次回は
①ビルドツール Gradleを使用して、warファイルを作成
②TomcatでwarファイルをDeproyする
Deproy場所は以下を使用
Tomcat + nginx でReverseProxsyServer