環境構築
IntelliJをつかう。
1. プロジェクトをつくる
Spring Initializer https://start.spring.io/
でGradle
、Kotlin
と、プラグインにWeb
を設定してダウンロード。
2. プロジェクトを読み込む
IntelliJでFile
→Open
で作成したプロジェクトを開く。
実装
一通り実装するとsrc/main/kotlin
配下はこんな感じになる。
- com
- example
- BootApp.kt
- MyController.kt
- Main.kt
メインクラス(Main.kt)
おまじない。
fun main(args: Array<String>) {
runApplication<BootApp>(*args)
}
BootApp.kt
おまじない。
@SpringBootApplication
class BootApp : SpringBootServletInitializer()
コントローラクラス(MyContoroller.kt)
この例だとlocalhost:8080
に行くと"Hello"が返ってくる。
@RestController
class MyController {
// URLに対応する処理を書いていく
@RequestMapping("/")
fun hello(): String {
return "Hello"
}
// http://localhost:8080?name=hoge
// みたいにGETパラメータをもらいたいときはこう
@RequestMapping("/paramTest")
fun paramTest(@RequestParam(value = "name") name: String): String {
return name
}
}
ローカルサーバで動作確認
gradleでbootRun
タスクを実行するだけ。
コマンドラインでやりたい場合はこう↓
./gradlew bootRun
実行するとhttp://localhost:8080
で立ち上がる。
Azureへデプロイ
war
をつくってAzure Web Appに置く手順。
1. warプラグインを入れ、warを有効にする。
apply plugin: 'war'
war {
enabled = true
}
2. warをつくる
gradleでwar
タスクを実行する。
build/libs
の中にwar
が生成される。
3. Azure Web Appのアプリケーション設定でJava, Tomcatを設定する
4. warをAzure Web AppのwwwRoot/webapps
におく
App Service Editorを開く。
App Service Editorを開いたら、エクスプローラからwar
をドラッグ&ドロップする。
※画像ではすでにpractice-0.0.1-SNAPSHOT
フォルダに展開されているが、war
を置いたあとアプリのURLへ1度行かないと展開されないので注意。
5. Web AppのURLへ行く
warが展開される。
結構時間かかる場合もあるのでページ読み込み終わるまで気長に待つ。
URLは以下のようになる。
https://***.azurewebsites.net/[warファイルの名前]/
参考
- Spring Boot (Kotlin) はじめの一歩
https://qiita.com/Yuki10/items/aef152f300a500b85725