Spring Boot + Kotlin でRESTアプリ作成ハンズオン1

次回

https://qiita.com/tseno/items/8009e985878c5b3f4355


# 1.環境構築からHello Worldまで

## 1-1. 開発環境

- Java11以上
- Spring Boot 2
- Intellij IDEA Community

## 1-2. Javaのインストール

- Java11 または 17 を使用します。
- Javaは各社から提供されていますので任意のJavaを使用してください。(Oracle、OpenJDK、Amazon、RedHat、Microsoft、IBM等)
- ここではAmazon Corettoをインストールします。
https://aws.amazon.com/jp/corretto/
- 既に古いバージョンのJavaが入っている場合は、PATHを変更することによりバージョンを切り替えてください。
- Javaのインストール確認
```sh
> java -version
openjdk version "11.0.18" 2023-01-17 LTS
OpenJDK Runtime Environment Corretto-11.0.18.10.1 (build 11.0.18+10-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.18.10.1 (build 11.0.18+10-LTS, mixed mode)
```

## 1-3. IntelliJ IDEA Community Editionのインストール

以下よりOSを選択後「Community Edition」ダウンロード＆「次へ」連打でインストールします。
https://www.jetbrains.com/ja-jp/idea/download/

## 1-4. Spring Initilizrでのプロジェクト雛型の作成

- https://start.spring.io/
からプロジェクトの雛型を作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88686/9f9fe16c-f98a-3373-bc37-f28cd5ec2858.png)

- demo.zipファイルがダウンロードされるので、解凍して任意のフォルダに置いてください。
- Intellij IDEA Community Editionを開いて、`Open`を押して、先ほどのdemoプロジェクトを開きます。
- プロジェクトの信頼の確認ダイアログが表示されたら、`Trust Project`を押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88686/331a98db-de6b-a349-1a19-61194a47d533.png)

- プロジェクトが開きました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88686/1c6c37f8-ce50-00df-3f59-91ad1d214602.png)

- `File`から`Project Structure`を選択してJavaの設定をします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88686/7b83b85d-638e-3b98-ef41-bb9db7ab18d0.png)

- `Project Structure` を開いて、`Java SDK`と `Language level` をインストールしたJavaに合わせて選択して`OK`を押してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88686/bcacedf2-8eb2-5ca9-6b9c-3c011e374739.png)

## 1-5. テーマの変更（任意）

- ちなみに、`File`→`Settings`→`Appearance`→`High Contrast`を選択してOKを押すと見やすくなります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88686/e19f6b03-f32f-e725-2356-804dd2cdf35c.png)

## 1-6. Dev Tools（自動ビルド）の設定

- 開発効率を上げるため、ソースを変更したときに自動的にビルドするホットデプロイの設定を行います。
大きな変更がある場合や変更が反映されない場合は、サーバーの停止→開始をしてください。
- Intellijの `Settings` から、`Build, Execution, Deployment`→`Compiler`→`Build project automatically` にチェックを入れます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88686/e5b81836-8c27-2a49-46c5-b6e405ad1789.png)

- 次に、Intellijの `Settings` から、`Advanced Settings`→`Compiler`→`Allow auto-make to start even if developed application is currently running` にチェックを入れてOKを押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88686/74fe4437-9925-8d4a-8d74-c2a6e637dac1.png)

## 1-7. Hello Controllerの作成

- Kotlinのファイルを新規作成します。
- 作成したいディレクトリで右クリック→`New`→`Kotlin Class/file`をクリックしてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88686/b875e4ff-b97d-ed74-bba6-ad86c1ff86e4.png)

- `HelloController` と入力して、Enterキーを押してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88686/1e6cf1ac-fc71-afdd-d5eb-0fb1c7b46a8d.png)

- 以下のように書いてください。

```kotlin
package com.example.demo

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

@RestController
class HelloController {

    @GetMapping("/hello")
    fun getHello(): String {
        return "Hello World!"
    }
}
```

- `DemoApplication.kt` を開いて、main()関数の左の`▶`をクリック、`Debug`をクリックするとプロジェクトが起動します。（次回からは、画面上の虫アイコンで起動します）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88686/2c73ea6c-2275-bb22-26c6-2f33311c19fd.png)

- ブラウザで、`http://localhost:8080/hello` にアクセスすると、 `Hello World!` が返却されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88686/be83b692-ed9b-1c2d-6ef2-e320385e0820.png)

- ソースを書き換えて保存すると自動ビルドされます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88686/56521411-6ae9-72f1-2963-9b606cfc3fa6.png)

- ブラウザをリロードすると、結果が反映されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88686/6fad2b51-264a-2c09-2d92-84a96717036d.png)


## 1-8. GitHub Copilotの導入（任意）

- Settingから、`Plugins`→`GitHub Copilot`をインストールする
- 詳しくは↓を読んでください。
- https://docs.github.com/ja/copilot/getting-started-with-github-copilot

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88686/d119101f-5d0f-baf0-4f49-38bfa2c9131e.png)



おわり