Posted at
KotlinDay 23

KotlinとSpring Boot

More than 1 year has passed since last update.

この記事はKotlin Advent Calendar 2016の23日目の記事です

が、12月23日に書き始めました……果たして間に合うんでしょうか?……


はじめに

Spring BootはJavaでさくっとWebアプリが作れるフレームワークです

もちろんKotlinでも使えますし、公式のページに記事があるので安心です


始め方

Spring InitializrというWeb上でポチポチとボタンを押せば勝手にSpring Bootのプロジェクトファイルを作ってくれるサービスがあるので、これを使うのが一番ラクです

言語の設定はfull versionにする必要があるので、ページ下部のSwitch to the full version.のリンクをクリックすれば項目が出てきます

あとは、LanguageでKotlinを選べばOKです

あとは各種項目を好きに埋めて、Generate Projectボタンを押して完成です

プロジェクトファイルをzipファイルでダウンロードできます

試しにGradleで作ってみました。設定を確認するとさり気なくKotlinのVerが最新版です。嬉しい

あとは好き勝手にKotlinで書いていけばOKです


生成されたコードを読む

Spring BootではSpringBootApplicationアノテーションをつけたクラスを1つ作る必要があるのですが、それもSpring Initializrが自動で生成してくれます

import org.springframework.boot.SpringApplication

import org.springframework.boot.autoconfigure.SpringBootApplication

@SpringBootApplication
open class DemoApplication

fun main(args: Array<String>) {
SpringApplication.run(DemoApplication::class.java, *args)
}

Spring BootはJavaで使われることを想定しているので、当然といえば当然ですがclassを渡すときはHogeClass::class.javaみたいな書き方をする必要があります

テストコードのサンプルも自動生成されます。初心者に優しい

import org.junit.Test

import org.junit.runner.RunWith
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.test.context.junit4.SpringRunner

@RunWith(SpringRunner::class)
@SpringBootTest
class DemoApplicationTests {

@Test
fun contextLoads() {
}

}


おわりに

KotlinとSpring BootというかSpring Initializr便利だよね!という話になりました

実際、KotlinとSpring Bootの組み合わせは某社の案件とかでも使っていますが、開発のしやすさとKotlinが入門しやすいのもあって重宝しています

また、AWS Lambdaと組み合わせて、Kotlinで共通ライブラリを作り、そのライブラリをSpring BootとAWS Lambdaから呼び出して使うみたいなこともしています

WebでもKotlin楽しい。そして、かわいい……今後も使っていきたいですね