Windows+VS CodeでSpring Boot環境を作る


やりたいこと

WindowsでSpring Bootを動かす環境を作りたい。
せっかくWindowsでやるならWSL上で作ってそれをVS Codeでよしなに開発するのが今風な気がするのでそれを目指す。
まずはWindows上のみで動かし、そのあとWSL上で動かす。

やったこと

Windows上のみで動かす

OpenJDKのインストール

http://jdk.java.net/14/ からWindows用のJDKをzipでダウンロードして展開する。
出来たフォルダを適当なパスへ移動する。今回はC:\Program Files\Java\jdk-14以下に置いた。

また、システム環境変数に下記を設定する。

変数
JAVA_HOME C:\Program Files\Java\jdk-14
Path 先頭に %JAVA_HOME%bin を追加

VS Codeの設定

拡張機能のインストール

下記をインストールした。

java.homeの設定

settings.jsonに下記のようにJDKのパスを指定する(他に項目があれば追加する形で)。

{
    "java.home": "C:\\Program Files\\Java\\jdk-14"
}

設定画面でjava.homeと入れて検索すると、settings.jsonで編集するリンクが出て来る。

Javaのプロジェクトを試しに作って動かす

Ctrl+Shift+Pでコマンドパレットを開き、Create Java Projectを実行する。
保存場所・プロジェクト名を適当に入力したらプロジェクトが作成されてVS Codeで開かれる。
F5でデバッグ実行して、Hello Javaと表示されるか確認出来ればOK。

Springのプロジェクトを試しに作って動かす

Ctrl+Shift+Pでコマンドパレットを開き、Spring Initiallizr: Generate a Gradle Projectを実行する。
(Mavenで作成してもいいけどGradleで)

依存パッケージはひとまず空で作成して、実行する。デバッグコンソールにSpringのロゴが出て実行されればOK。

WSLで動かす

OpenJDKのインストール

WSL上でOpenJDKをインストールする。
aptコマンドでインストール出来るのはOpenJDK11のようなのでこれを使う。

$ sudo apt update
$ sudo apt install -y openjdk-11-jdk

gradleのインストール

aptで入れると古いようだが、ひとまず入れる。

$ sudo apt install -y gradle

VS Codeの設定

拡張機能のインストール

まず下記をインストールする。

インストール後にWSLターミナルでcodeと打つと、WSLの環境を向いたVS Codeが立ち上がるようになる。
その状態でWindows向けのVS Codeでインストールした拡張機能を改めてインストールする。
※インストールボタンのラベルがInstall in WSL:Ubuntuになる。

java.homeの設定

settings.jsonに設定したjava.homeの値を変更する。

{
    "java.home": "/usr/lib/jvm/java-11-openjdk-amd64"
}

Javaのプロジェクトを試しに作って動かす

Ctrl+Shift+Pでコマンドパレットを開き、Create Java Projectを実行する。
保存場所・プロジェクト名を適当に入力したらプロジェクトが作成されてVS Codeで開かれる。
F5でデバッグ実行して、Hello Javaと表示されるか確認出来ればOK。

Springのプロジェクトを試しに作って動かす

Ctrl+Shift+Pでコマンドパレットを開き、Spring Initiallizr: Generate a Gradle Projectを実行する。
依存パッケージはひとまず空で作成して、実行する。デバッグコンソールにSpringのロゴが出て実行されればOK。

Spring Webを試す

Spring Initiallizrでプロジェクト作成時にSpring Webを利用する設定で作成する。
main()があるApplicationクラスに@RestControllerアノテーションを付け、クラス内に適当に下記のようなメソッドを作成する。

@GetMapping("/")
String home() {
    return "Hello!";
}

アプリケーションを動かし、http://localhost:8080/ にアクセスしてHello!が表示されればOK。
リポジトリ:https://github.com/stamefusa/spring-web-demo

参考にしたエントリ

https://qiita.com/gitcho/items/a6c0bb781bc395e43ec4
https://qiita.com/gitcho/items/147a3ce2536ae3035bb8