---
# System prepended metadata

title: SpringBoot
tags: [SpringBoot]

---

# SpringBoot　
## 1. SpringBoot開発環境の構築
### 1.1 ビルドツール
#### 1.1.1 ビルドツールとは
SpringBootの利用には、ビルドツールを用いるのが一般的である。
ビルドツールとは、対象の環境でプログラムを実行できるように、アプリやライブラリを組み立てるためのツール。
代表的なツールとしては、Ant(Apache), Maven, Gradle等
前二つはビルドファイルがXML文なのに対し、GradleではGroovyという可読性が高い言語で書かれている。
Gradleは現在ではJavaのデファクトスタンダードの地位を確立しつつある。
#### 1.1.2 Maven・Gradleのセットアップ
1. Maven及びGradleをインストールする。
2. セットアップウィザードの実行又はjipの解凍により、適切な位置にフォルダを展開する。
3. PCが各アプリケーションを認識できるよう、環境変数を設定する。
#### 1.1.3　環境変数設定
別ページにまとめている。[環境変数設定](https://hackmd.io/1cU8UN5eQi2EMTP7lNTNvw)
### 1.2 統合開発環境（IDE）
様々なツールの集合からなるソフトウェアの統合的な開発環境。
言語によって適した環境は異なる。
Javaの場合Ecripseや、IntelliJが有名である。
これらの開発環境は、MavenやGradleで使用する各種プラグインに対応しており、SpringBootもこのプラグインから利用することになる。

## 2. +KotlinでHelloWorld
### Kotlinとは
[Wikipedia](https://ja.wikipedia.org/wiki/Kotlin)
Kotlin（コトリン）は、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、静的型付けのオブジェクト指向プログラミング言語である。Java との相互運用性があり、Kotlin から Java を呼び出すことも、Java から Kotlin を呼び出すこともできる。
### 1. Spring Initializr
Spring Initializrとは、Springプロジェクトを作成する場合、現在最も簡単に目的の依存関係を整える方法である。プロジェクトのセットアップ時に、ここで依存関係を決定しておく。

## 3. Mavenを用いてHelloWorldを表示する。
### 3.1 POM.xmlファイル
Mavenの場合、POM.xmlというXMLファイルに使用するライブラリ設定や依存設定等を記入する。
#### Mavenならではの設定
* 依存関係　parentタグのbook-starter-parentは、有用なMavenデフォルトを提供する特別なスターターである。これらのスターターを利用するためには、必要となる依存関係のIDをdependenciesタグ内のdependencyタグに記述する必要がある。
* parentタグ内の設定事項(参考)
  * groupIdタグ：org.springframework.boot
  * artifactIdタグ：spring-boot-starter-parent
  * versionタグ：2.4.0（Java15対応）
* dependenciesタグ内の設定事項（参考）
  * groupIdタグ：org.springframework.boot
  * artifactIdタグ：spring-boot-starter-web
* POM.xmlを変更した際は、必ずPOM.XMLをリロードし、必要なライブラリをダウンロードする。
### 3.2 SpringBootを用いたコード
#### 4.1 入力手順
1. org.springframeworkの各種機能をimportする。（boot, boot.autoconfigure,web.bind.annotation）等。
2. ステレオタイプアノテーション機能(@RestController)を記入する。ステレオタイプアノテーションとは、コードを読んでいる人やクラスが、特定のロールを果たす Spring のヒントを提供するものである。
3. Springの構成方法をSpringに習得させる、@EnnableAutoCofigurationを記入する。
4. ルーティング機能(@RequestMapping("/"))を記入する。これは、/パスを持つHTTPリクエストが、homeメソッドにマッピングするために必要なルーティング情報を提供するものである。
5. mainメソッドに処理したい内容を記録する。









###### tags: `SpringBoot`
