SpringBoot+KotlinでHelloWorld

統合開発環境「IntelliJ」と「Spring Initializr」を使って、SpringBoot+KotlinでHelloWorldを作成します。

| カテゴリ       | バージョンなど       |
|:-----------------|------------------:|
| os               |windows 10 home 64bit | 
|Project|Gradle|Project |
|Language|Kotlin |
|Spring Boot|2.1.8 |
|開発環境|IntelliJ IDEA 2019.2 |


# Kotlinとは


[Wikipedia](https://ja.wikipedia.org/wiki/Kotlin)より抜粋

Kotlin（コトリン）は、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、静的型付けのオブジェクト指向プログラミング言語であり、以下のような特徴的な機能があるそうです。

```
・静的なNull安全の保証
・演算子オーバーロード
・高階関数（クロージャ）
・ミックスインと第一級デリゲーション
・プロパティ（フィールドはない）
・ジェネリクス宣言側における変性指定 (declaration-site variance) と型投影 (type projection)
・拡張関数
・モジュールとビルド基盤
・インライン関数（オーバーヘッドなしクロージャ）
・パターンマッチング
・Java との相互運用性（Kotlin から Java を呼び出すことも、Java から Kotlin を呼び出すこともできる）
```

# 1. 準備
### (1) JDKをインストールする

※インストールしている場合は読み飛ばしてください。

[AdoptOpenJDK](https://www.gwtcenter.com/using-adoptopenjdk)をインストールします。それぞれ、環境にあったバージョン、JVMを選択してダウンロードしインストールします。


### (2). IntelliJをインストールする

※インストールしている場合は読み飛ばしてください。

統合開発環境「IntelliJ」をインストールします。複数のサイトに手順があります。私は以下のサイトを参考にしました。
https://pouhon.net/kotlin-start/897/

# 2. Spring Initializrでプロジェクトテンプレートを作成する

### (1) [Spring Initializr](https://start.spring.io/)にアクセスします。

### (2) 下図のとおり入力し、「Generate the project - Ctrl + ⏎」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246741/498590c1-3152-4e8e-b81c-1fe8a13f5ae1.png)

※ helloworldを出すだけなので、optionでは、以下の２つを選択します

- Spring Boot DevTools
- Spring Web

# 3. IntelliJで作成したテンプレートを開く

### (1) ダウンロードにzipファイルが保存されるので、それを適当な場所に解凍します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246741/b8ed1372-47f0-55d5-9270-61880e760dad.png)

### (2) IntelliJを起動し、「file」>「open」を選択し

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246741/8140852f-8718-866b-6613-26d5187e495c.png)

### (3) 先に保存したプロジェクトを選択しましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246741/0314b4d0-1ce6-b277-12bc-9c802ddfeffd.png)

### (4) 下図のようになればOK

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246741/682df4d5-fcf3-e05a-63df-7dab48fb343e.png)

# 4. Controllerを作成する

「src」>「main」>「kotlin」>「com.example.demo2」フォルダの下に、コントローラを作成します。

``` SampleController.kt

package com.example.demo2

import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController

@RestController
class SampleController {
    @GetMapping("/")
    fun getHello() :String {
        return "Hello World"
    }
}
```

以上で準備終わり。

# 5. 実行して確認する。

できたアプリを確認します。「View」>「Tool Windows」>「Gradle」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246741/148a0c36-7b58-e1ee-7276-907cc5e9d6c7.png)

下図のように、GradleのTool boxが表示されます。「Tasks」>「Application」の下の「bootRun」をダブルクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246741/479cd901-392b-b8f8-af0e-1d92f673dcfb.png)

しばらくすると、WEBサーバが起動するので、[http://localhost:8080](http://localhost:8080/)にアクセスしてみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246741/248a0924-0bea-a2c5-0b63-edfb2e71f9df.png)


# 6. おわりに

「Springboot」で「Kotilin」を使ってWEBアプリを開発するのも簡単にできました。

私はこれまで、Springbootの新規プロジェクトの作成は、「eclipse」の新規作成ウィザードで作成していましたが、「Kotlin」で開発する場合は、こちらのやり方のほうが個人的に簡単な気がします。

また、「Kotlin」の開発を試して、「Spring Initializr」を知りました。定期的に技術情報などを収集することも大事ですね。一つの言語でもいろいろな実装方法があり、選択次第で開発工数が大きく変わってきます。