Spring bootの環境構築(Intel Mac)

## 背景
``Java``の勉強がしたかったので、人気な``Spring boot``を触るために環境構築をしました。

## 導入内容
IDEは``Eclipse``を使用することにしました。STS(Spring Tool Suite)というツールも主流のようですが、STSもEclipseをベースに作られたIDEになっていて、Eclipseにライブラリを入れることで同等の環境が作れるようです。
Eclipseを使用する理由は``Spring Boot``以外を触ることも考慮して、専用ツールを使うより慣れた時の汎用性が高いかもと思ったからです。

## 導入手順
### 手順
1. Pleiadesをダウンロード・インストール
1. プラグイン: Spring Toolsをインストール
1. Javaをインストール
1. Lombokのインストール
1. プロジェクトを作成
1. Hello Worldを表示させる

### Pleiadesをダウンロード・インストール
pleiadesは日本語化されたEclipseがインストールできて、OS・言語ごとにまとまったプラグインもダウンロードできます。
Eclipseが元々入っている人は、日本語化のプラグインのみを導入する必要があります。今回は``Pleiades ALL in One``でEclipseも一緒にインストールします。言語はJavaでダウンロードしました。

[Pleiades: リリース2023](https://willbrains.jp/index.html#/pleiades_distros2023.html)までがインテルマック対応みたいなので、2023版を導入します。
![スクリーンショット 2024-04-11 3.02.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1109509/76d52940-ed12-a077-8fac-99bd8cc116a4.png)

ダウンロードしたファイルを解凍してインストールすると日本語化されたEclipseが使用できるようになります。

### プラグイン: Spring Toolsをインストール
Eclipseを起動して以下のように聞かれますが、そのまま起動してもらえれば問題ありません。
![スクリーンショット 2024-04-11 3.11.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1109509/ee8a66b9-1a78-45a2-5f95-e69c8afec597.png)

eclipse内で``ヘルプ>Eclipseマーケットプライス``からspringで検索して``Spring Tools 4``をインストールします。
![スクリーンショット 2024-04-12 0.42.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1109509/4d4bba40-4a4b-a794-6802-67b263564704.png)
![スクリーンショット 2024-04-12 0.44.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1109509/99373e88-5117-0648-793b-3f07e14cc9e3.png)


### Javaのインストール
次のLombokのインストールでJavaが入ってないと実行できないので入れます。
直接ダウンロードしても良いが、ここでは``Homebrew``で導入する。
```shell
# Homebrewを更新
brew update
# javaをインストール
brew install java
# バージョンの確認
java --version
```
version確認で失敗する場合はシンボリックリンクを追加する必要があるかも？(自分はなりました。)
```shell
sudo ln -sfn $(brew --prefix)/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
```

### Lombokのインストール
LombokはJavaの便利ライブラリでアノテーションを付与するだけでgetter、setter、toStringメソッド等をコンパイル時に自動生成してくれます。
導入手順は以下になります。

1. [Lombok](https://projectlombok.org/download)と検索してダウンロードする。
1. ダウンロードした``lombok.jar``をeclipseのアプリパッケージ内におく。
※パッケージ内にはfinderのアプリケーションでeclipseを探して、右クリック→パッケージの内容を表示で入れます。
![スクリーンショット 2024-04-12 0.23.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1109509/4e438194-95eb-444a-cb1c-dca48c3fe02a.png)
1. lombok.jarをダブルクリックで実行して、インストーラが開いて、読み込みが終わるとeclipse.exeが表示されるので、Install/Updateを実行する。
※表示されない場合は、Specify locationから以下のようなパスを指定します。
``/Applications/Eclipse_2023-12.app/Contents/Eclipse/eclipse.ini``
![スクリーンショット 2024-04-12 0.35.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1109509/e8541575-ddc2-249b-73a1-85380704b2f8.png)
![スクリーンショット 2024-04-12 0.35.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1109509/c3aa8342-fc58-80c8-cb7a-d1748fa26716.png)
1. ``Install Successful``が表示されれば成功です。おそらく一瞬でインストールが終わります。

### プロジェクトを作成
プロジェクトエクスプローラーで右クリック>新規>その他を選択
![スクリーンショット 2024-04-08 2.05.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1109509/35139858-2e6f-7964-8ddf-fc867b15283a.png)

Spring Bootを探して、Spring スターター・プロジェクトを選択
![スクリーンショット 2024-04-08 2.05.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1109509/53e65d1f-241a-a550-9287-f85d224e03cf.png)

色々と設定します。名前を任意に設定して、javaバージョンはインストールしたものにしておきます。
![スクリーンショット 2024-04-08 2.06.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1109509/caf5d0fe-f6ef-68bb-f6dc-3c672a3d05d8.png)

必要なツール等を選択して、完了にします。
詳細な説明は割愛しますが、今回は以下を入れています。
開発ツール: Spring Boot DevTools, Lombok
SQL: JDBC API, Spring Data JDBC, H2 Database
テンプレート・エンジン: Thymeleaf
Web: Spring Web

![スクリーンショット 2024-04-08 2.07.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1109509/68ac536a-0535-a323-37f3-a46490ced931.png)

完了後、バックグラウンドでプロジェクトが作成されていきます。

### コードを書いてHello Worldを表示
ファイルを追加して、コードを書きます。

```src/main/java/com/example/hello/HelloController.java
package com.example.hello;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HelloController {
	@GetMapping("/hello")
	public String getHello() {
		// hello.htmlに画面遷移
		return "hello";
	}
}
```

```src/main/resource/templates/hello.html
<!DOCTYPE html>
<html xmlns="http://www.thymeleaf.org">
	<meta>
		<meta charset="UTF-8"></meta>
		<title>Hello World</title>
	</head>
	<body>
		<h1>Hello World</h1>
	</body>
</html>
```

フォルダ構成
![スクリーンショット 2024-04-12 1.05.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1109509/343d18bd-c58c-4402-164b-ad99ddf4d9f3.png)




以下のようにプロジェクトを``右クリック>実行>Spring Bootアプリケーション``をクリックすると
![スクリーンショット 2024-04-08 3.03.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1109509/a4d4a12e-ff15-5924-b10b-ef22bf652cb1.png)

ターミナルに出力されて
![スクリーンショット 2024-04-08 3.04.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1109509/da34631b-b81d-a244-2c5e-86e690104eb4.png)

``http://localhost:8080/hello``に接続すると、以下のように表示されました。
![スクリーンショット 2024-04-08 3.04.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1109509/f569025e-b642-e422-dd3b-dc9848047c64.png)


以上です。お疲れ様でした。

Spring Bootを楽しく学習していきましょー！わくわく
最後まで見ていただいてありがとうございます。

## 参考
[後悔しないためのSPRING BOOT 入門書](https://www.amazon.co.jp/%E5%BE%8C%E6%82%94%E3%81%97%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81%E3%81%AESpring-Boot-%E5%85%A5%E9%96%80%E6%9B%B8%EF%BC%9ASpring-%E8%A7%A3%E4%BD%93%E6%96%B0%E6%9B%B8%EF%BC%88%E7%AC%AC2%E7%89%88%EF%BC%89Spring-Boot%E3%81%8C%E4%B8%B8%E5%88%86%E3%81%8B%E3%82%8A/dp/4802092865)
※アフィリエイトリンクではありません。