STEAM PLACE

エンジニアリングとマネジメント

Kotlin x IntelliJ で Spring Boot を動かす

f:id:dskst9:20180513233850p:plain

Kotlin で Spring Boot を動かしてみます。
環境は以下のとおりです。

  • Kotlin: Kotlin version 1.2.41-release-74 (JRE 1.8.0_31-b13)
  • Java: java version "1.8.0_31"
  • Gradle: Gradle 4.7
  • Spring Boot: 2.0.2
  • IntelliJ: 2018.1.3

SPRING INITIALIZR でベース作成

まずは、 SPRING INITIALIZR でプロジェクトベースを作成します。
SPRING INITIALIZR で kotlin がサポートされていますので、 「Generate a {Gradle Project|Meven Project} with {Kotlin} and Spring Boot {Version}」を選択するだけで kotlin ベースで作成できます。

f:id:dskst9:20180513233227p:plain

Generate Project を押下するとZIPファイルをダウンロードできるので、任意のディレクトに解凍します。

IntelliJ に import

続いて、 IntelliJ で import します。

  1. Import Project > 解凍したディレクトリを選択
  2. Import project from external model > Gradle > Next
  3. Use loacal gradle destribution > Gradle home を入力
    ※ Homebrew を使用している場合は brew info gradlelibexec を追記したパスを入力
    f:id:dskst9:20180513233318p:plain
  4. Finish!

gradle がゴリゴリと実行されてプロジェクトがセットアップされます。

Run してみる

JVM target エラーが発生したら

Error:(10, 5) Kotlin: 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

Kotlin compiler の JVM target が 1.6 になっていました。
Preferences > Build, Execution, Deployment > Compiler > Kotlin Compiler > Target JVM version で 1.8 を選択します。

f:id:dskst9:20180513233603p:plain

ローカルで何かを表示してみる

適当に返答する Contoller を追加します。

controller/HelloController.kt

package com.dskst.library.librarian.controller

import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController

@SpringBootApplication
@RestController
class HelloController {

    @GetMapping("/")
    fun index(): String = "Good job!"

}

アクセスして Good job! が表示されれば完了です。
次回はこいつを Docker に持っていこうと思います。

参考

1. [事前準備] Spring BootでHello World — Spring Bootキャンプ ハンズオン資料 1.0.0-SNAPSHOT ドキュメント

engineering.pivotal.io

qiita.com