前提
- Windows11 wsl2 インストール済み
- wsl2内にdocker インストール済み
- VSCode インストール済み
バージョン
- VSCode 1.85.1
- Spring Boot 3.2.1
- Java eclipse-temurin 21
- docker 24.0.7
- docker compose 2.21.0
手順
作業用のフォルダを作成し、VSCodeで開く
mkdir -p ~/workspace/try_springboot3
code ~/workspace/try_springboot3
devcontainer設定
Dockerfile, compose.yml を作成する
FROM eclipse-temurin:21-jdk-jammy
compose.yml
services:
web:
build:
dockerfile: Dockerfile
-
vscodeのコマンドパレット(Ctrl+Shift+P)でAdd Dev Container Configuration Filesを選択
- "From compose.yml"を選択
- "Select Features"は無しでOK
- "Reopen in Container"
-
Extensionsで下記を検索して、歯車マークの"Add to devcontainer.json"を選択
- Extension Pack for Java
- Spring Boot Extension Pack
-
devcontainer.jsonを保存してRebuild(コマンドパレットでRebuild Container)
プロジェクト作成
- コマンドパレットで"Spring Initializr: Create a Gradle Project"
- Spring Boot version: 3.2.1
- language: Java
- group id: com.example
- artifact id: demo
- packaging type: Jar
- Java version: 21
- dependencies: Spring Web, Spring Boot Actuator
- OK
- demoフォルダが作成される
demoフォルダの中身をワークスペース直下に移動させる
mv demo/* demo/.[^.]* ./
rmdir demo
java.home設定
- .vscode/settings.jsonに下記を追記
-
which java
の実行結果は/opt/java/openjdk/bin/java
だったので bin の上のディレクトリを指定
-
settings.json
"java.jdt.ls.java.home": "/opt/java/openjdk/"
アプリ修正
src/main/java/com/example/demo/DemoApplication.javaを開き、下記を追記する。アノテーションはimportしておく
@GetMapping("/hello")
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
return String.format("Hello %s!", name);
}
DemoApplicationクラスに@RestControllerアノテーションをつける
@SpringBootApplication
@RestController
public class DemoApplication {
起動
VSCodeのサイドバーのSpring Boot Dashboardの APPS>demo>Run をクリック
ブラウザで http://localhost:8080/hello を開き、Hello Worldが表示されたら成功