Kotlin
Azure
spring-boot

Spring Boot(Kotlin) + GradleでAPIを書いてAzure Web Appにデプロイする。


環境構築

IntelliJをつかう。


1. プロジェクトをつくる

Spring Initializer https://start.spring.io/


GradleKotlinと、プラグインにWebを設定してダウンロード。


2. プロジェクトを読み込む

IntelliJでFileOpenで作成したプロジェクトを開く。

Use auto-importにチェックを入れる。


実装

一通り実装するとsrc/main/kotlin配下はこんな感じになる。

- com

- example
- BootApp.kt
- MyController.kt
- Main.kt


メインクラス(Main.kt)

おまじない。


Main.kt

fun main(args: Array<String>) {

runApplication<BootApp>(*args)
}


BootApp.kt

おまじない。


BootApp.kt

@SpringBootApplication

class BootApp : SpringBootServletInitializer()


コントローラクラス(MyContoroller.kt)

この例だとlocalhost:8080に行くと"Hello"が返ってくる。


MyController.kt

@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を有効にする。


build.gradle

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ファイルの名前]/


参考


  1. Spring Boot (Kotlin) はじめの一歩

    https://qiita.com/Yuki10/items/aef152f300a500b85725