SpringBoot + kotlin + Thymeleafの構築

今後記事を投稿していく上で、Springプロジェクトの基盤を作る際の手順を記載します。
先人の方々の記事もたくさんあり、今更感がありますが、今後の記事の初期設定の説明の参照として使いたく。

## 記載すること
* SpringBootプロジェクトの初期設定から起動まで
## 記載しないこと
* spring開発や、Gradleに関するHowTo
## 対象者
* 開発現場で、既に存在するモジュールに対して改修しているが、プロジェクトの新規作成がわからないエンジニア

# 目次
1. [実行環境](#実行環境)
1. [springプロジェクトの設定](#springプロジェクトの設定)
1. [IntelliJでプロジェクトを開く](#intellijでプロジェクトを開く)
1. [アプリケーションの起動](#アプリケーションの起動)
1. [起動確認](#起動確認)
1. [propertiesをyaml形式に変更](#propertiesをyaml形式に変更)
1. [git](#git)

# 実行環境
<dl>
  <dt>OS</dt>
  <dd>macOS catalina</dd>
  <dt>IDE</dt>
  <dd>IntelliJ</dd>
  <dt>言語</dt>
  <dd>Kotlin</dd>
  <dt>Builder</dt>
  <dd>Gradle</dd>
</dl>

# springプロジェクトの設定
[Spring Initializr (start.spring.io)](https://start.spring.io/)にアクセス。
![スクリーンショット 2022-03-14 17.03.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2585352/89b73d46-dfa5-e9d0-dc1d-7d71ede4b7ae.png)

設定値は以下を参照。（各項目の説明は割愛）

* Project 情報

| 項目 | 設定値 |
|:-:|:-|
| Project |  Gradle Project |
| Language | Kotlin  |
| Spring Boot  |  2.6.4 |

* Project Metadata

| 項目 | 設定値 |
|:-:|:-|
| Group |  Gradle Project |
| Artifact | com.example  |
| Name | demo |
| Description |  SpringBoot + Kotlinのtemplate |
| Package name  |  com.example.demo |
| Packaging | Jar |
| Java | 11 |

* Dependencies

| 設定値 | 説明 |
|:-|:-|
| Spring Boot DevTools | アプリケーションの高速再起動、LiveReload、および構成を提供して、開発エクスペリエンスを向上させます。 |
| Spring Web  | Spring MVCを使用して、RESTfulを含むWebアプリケーションを構築します。デフォルトの組み込みコンテナとしてApacheTomcatを使用します。 |
| Thymeleaf  | Web環境とスタンドアロン環境の両方に対応する最新のサーバー側Javaテンプレートエンジン。HTMLをブラウザで静的なプロトタイプとして正しく表示できるようにします。 |
- - -

![スクリーンショット 2022-03-14 17.08.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2585352/520ac697-7a9b-f345-ee2f-6f2d9a85328a.png)

[**GENERATE**]を押すと、設定された内容のzipがダウンロードされます。
ダウンロードが完了したら解凍します。

## IntelliJでプロジェクトを開く
IntelliJで解凍したディレクトリを選択してProjectをOPENします。
![スクリーンショット 2022-03-14 18.51.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2585352/f86c702d-0cce-fbd8-be80-29d899103998.png)
- - -
確認画面が表示されるので、「**Trust Project**」を選択
![スクリーンショット 2022-03-14 18.52.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2585352/26f159a3-7c6e-39c3-d62f-5fb26c30cb23.png)
- - -
Projectが開き、Gradleが走るのしばし待機。
![スクリーンショット 2022-03-14 18.55.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2585352/83232b74-7df0-a419-1ef0-c4ea6424603f.png)


## アプリケーションの起動
Gradleの仕事が終わったようなので、boot runします。
「src/main/kotlin/com/example/demo/DemoApplication.kt」を右クリック。
「Run 'DemoApplicationKt'」を選択。
![スクリーンショット 2022-03-14 19.16.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2585352/c90d2fec-dc93-3c5f-7e2b-ca9bea0a1c71.png)
- - -
無事、Springが起動しました。
![スクリーンショット 2022-03-14 19.19.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2585352/dbae409e-6afb-be33-cd93-52ac37dfa5c7.png)

# 起動確認
ブラウザで「[http://localhost:8080](http://localhost:8080)」にアクセス。
「**Whitelabel Error Page**」ページ（404エラー）が表示されれば正常に起動ができています。
今回はアクセスしたURLに対する振る舞い（画面表示）を準備していないので、404エラーとなります。
![スクリーンショット 2022-03-14 19.21.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2585352/cba855c2-b9ac-47e7-bbe1-fcc77990c094.png)

# propertiesをyaml形式に変更
個人的にプロパティの設定について、properties形式ではなく、yaml形式の方が好みなので最初にyamlにrenameしておきます。
[application.properties] →　[application.yaml]

# git
今回作成したものを以下にpushしています。
https://github.com/145uoka/springboot_template_kotlin