VSCodeでSpring BootでWEB API環境を構築する(その1)

こんにちは、きむら @bokukimura です。

VSCodeでSpring Bootのアプリケーションを作成したので、Spring Boot環境を構築する手順を記載します。

開発環境

この記事を書いている時期の手元の開発環境は以下です。

OS
windows10

$ kotlin -version
Kotlin version 1.3.61-release-180 (JRE 1.8.0_161-b12)

$ java -version
java version “1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

$ code -v
1.41.1

拡張機能のインストール

VSCodeで開発する際に、以下の拡張機能をインストールします。

Spring Boot Extension Pack

Spring Boot Extension Packは、Spring Boot関連の複数の拡張機能をまとめたものです。
次の拡張機能がインストールされます

Spring Boot Tools
Cloudfoundry Manifest YML Support
Concourse CI Pipeline Editor
Spring Initializr Java Support
Spring Boot Dashboard

プロジェクトの作成

Ctrl+Shift+Pでコマンドパレットを開き、springと検索し、Spring Initializr: Generate a Maven Projectを選択
指示に従って、以下のように設定しました。

specify project language : Kotlin
input group id for your project : com.example
input artifact id for your project : demo
specify spring boot version :

specify spring boot version : 2.2.4

search for dependencies : weeb、DevTools、Thymeleafを入力して確定
 Spring Web : TomcatとSpring MVC のフルスタックweb開発
 Spring Boot DevTools : Spring Boot 開発ツール
 Thymeleaf(タイムリーフ) : テンプレートエンジン
「selected 3 dependencies」と表示されているはずなのでEnterで次へ。

どのフォルダー内でファイル群を生成するか尋ねられるので、フォルダを選択します。
今回は、「C:\work\kotlin」に作成しました。

「successfully generated location」のメッセージが出ると思いますので、「open」をクリック。

アプリケーションの実行

src\main\kotlin\com\example\demoに、DemoApplication.ktが作成されています。
その中にmainメソッドが実装されています。


package com.example.demo

import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication

@SpringBootApplication
class DemoApplication

fun main(args: Array) {
runApplication(*args)
}


適当な内容を返す、DemoController.ktを作成します。


package com.example.demo

import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.RequestMapping

@Controller
class Controller() {
@RequestMapping(“/") fun root() = “Hello world !!"
}


ここまで出来たら実行です。

デバッグ > デバッグの開始 を選択
環境の選択が出るのでKotlinを選択する

launch.jsonが生成されるので、再度、
デバッグ > デバッグの開始を選択する・・・・・。

ん?動かなくね???

http://localhost:8080/アクセスしても何も出ないよ?

色々調べると、デバッグコンソールに、Tomcatの実行のログが出てない。。。

mavenのインストール

もしかして、エラーが出るのはmavenをインストールしてないから??

とりあえず、以下のページに沿ってインストールします。

https://hitori-develop.stores.jp/news/5e3089c594cf7b2002d8acd7

ちなみに、mavenインストールしてない説は当たりでした。

が。。。またエラーが 汗

次のメッセージが出て、runApplicationに波線が出ています。

Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6. Please specify proper '-jvm-target’ option

JVMの設定がされていなかった為です。解決方法は以下に記載しました。

VSCodeでSpring Boot起動でJVM targetの設定エラーを回避する方法

https://hitori-develop.stores.jp/news/5e30884ecf327f63f49c1150

さらに、別のエラーが発生。

文字化けで読めません。。。。汗

[INFO] async1 Found 79 artifacts in C:\work\kotlin\demo\pom.xml
[INFO] async1 Starting JVM debug session with main class path.to.your.MainClassKt
�G���[: ���C���E�N���Xpath.to.your.MainClassKt�����‚���Ȃ����������[�h�ł��܂���ł���
[INFO] eventBus Sent exit event

参考
https://qiita.com/yama9112/items/ff829561238440437b99
https://www.webnoha.work/blog/20181226-hello-spring-boot/
https://dskst9.hatenablog.com/entry/2018/05/13/234617