Javaのフレームワークを学習する＃１(Mac版)

#Javaのフレームワークを使って開発

まず初めにこのEclipseの画面を開きます。

<img width="1360" alt="スクリーンショット 2020-07-12 4.36.31.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/f19a893f-13e0-14f5-7170-6e7abd3683da.png">

黒く塗り潰しているところに、作っていきます。(黒く塗り潰したのは先に作ってしまったので、隠しています...)

次にプロジェクト・エクリプスローラのところで、右クリックをして新規、その他を選択します。

<img width="1359" alt="スクリーンショット 2020-07-12 4.50.45.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/e7d8063b-7833-f38f-3c64-5ea33772aeb2.png">

<img width="1353" alt="スクリーンショット 2020-07-12 4.50.54.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/08d12b4f-23ea-e682-c6fe-54c3927aa444.png">

ウェザードを選択の画面が出てきます。ちなみに今回は、Eclipseの2020
年ヴァージョンを使っています。

<img width="1351" alt="スクリーンショット 2020-07-12 4.51.08.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/13b97c09-f549-e873-f000-88c650006b5e.png">

次にSpring スターター・プロジェクトを選択します。

<img width="587" alt="スクリーンショット 2020-05-24 6.13.45.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/f79d294e-2259-0e27-ac08-4e9bdc493ccb.png">

パッケージ名と名前を書きます。(パッケージ名と名前は何でも大丈夫！)

<img width="588" alt="スクリーンショット 2020-05-24 6.14.01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/f8984c38-ec51-94f0-5963-3b5705b8a7a6.png">

次にSpringスタータ・依存関係に移ります。

<img width="582" alt="スクリーンショット 2020-05-24 6.16.01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/2d16eed2-156c-c5b0-8484-182734595017.png">

Spring Boot DevTools
MyBatis Framework
MySQL Driver
Spring Security
Thymeleaf
Spring web
を選択して完了をクリックしてください。

<img width="584" alt="スクリーンショット 2020-05-24 6.28.10.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/eafeb20d-df16-f68b-b3f8-f61d0c2662c7.png">

次の画面は、そのまま完了のクリックをしてください。

<img width="587" alt="スクリーンショット 2020-05-24 6.28.33.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/bf4e11e5-f97f-ea3e-e2d9-f6d2bd621a58.png">

完了したら、最初の画面のプロジェクト・エクスプローラーに、プロジェクトが出来ましたね。
(下のプロジェクトは、関係無いので無視してくださいね。)

<img width="1355" alt="スクリーンショット 2020-07-12 5.53.43.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/159187c0-955e-1b98-cd06-69f7cd7b760c.png">

Webアプリケーションが起動出来るところまで行きたいので、その前にいくつかの設定をしなければならないので、説明を踏まえて進めて行きます。

まずは、MySQLとの接続情報をアプリケーションサーバーのTomcatの方に教えてあげないといけないので、Springスタータ・プロジェクトのプロジェクトを作った時点で、すでにソースメインに、リソースイズの配下にアプリケーションプロパティというプロパティファイルがあります。

<img width="1320" alt="スクリーンショット 2020-05-25 4.55.39.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/609b77a6-2b10-c71b-e3b8-34e23f7a2dd7.png">

こちらの方にデータベースとの接続設定を記述します。(コードは覚えとく方が良い)
設定は、ご自身の環境設定に合わせて、コードを書いてください。

<img width="1312" alt="スクリーンショット 2020-05-25 5.04.39.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/01b91bc5-335b-0b6a-4b1a-a1f7699db934.png">

Springセキュリティの設定もしないといけないので、設定を行わないといけないです。

<img width="1314" alt="スクリーンショット 2020-05-25 5.07.14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/1a4b0b77-7728-230e-e64b-e66eba2953ab.png">

Javaクラスで設定する事が出来るので、その方法を使います。

<img width="1318" alt="スクリーンショット 2020-05-25 5.08.31.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/3a63bade-d8cf-10a9-ad6b-b382b987d5c9.png">

新たにクラスを作るにあたって、クラス名はお好みで決めてあげてください。

<img width="1312" alt="スクリーンショット 2020-05-25 5.09.30.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/a7e78446-2029-7960-ff60-c532be105a78.png">

<img width="1288" alt="スクリーンショット 2020-05-25 5.10.11.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/66efb1ee-4561-7819-4685-65c4a9f2040b.png">



<img width="1304" alt="スクリーンショット 2020-05-25 5.11.13.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/fde68a3c-695c-912f-5f30-7c1461076950.png">

名前を記入したら、スーパークラスの参照をクリックしてください。

<img width="1315" alt="スクリーンショット 2020-05-25 5.11.57.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/c068afce-3e00-a259-0852-8f58365d7714.png">

Springの組み込みのウェブセキュリティー、コンフィギアアダプタを継承します。
クリックで選択して、OKをクリックしてください。

<img width="593" alt="スクリーンショット 2020-05-25 5.13.42.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/87a58645-7b32-0075-24b2-5f3a50e9a776.png">

そのまま完了をクリックしてください。

<img width="580" alt="スクリーンショット 2020-05-25 5.14.23.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/c09b9dac-868d-4dc3-27c2-b6d24d327932.png">

コードに関しては、『こうだ！』という具体的な説明が難しい為に、書きながら覚えて頂く方が良い。

<img width="1316" alt="スクリーンショット 2020-05-25 5.15.02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/b748e15e-a9ab-e770-ed83-fe84a87f5604.png">

まずは、コンフィギレーションを行うクラスは、イネーブルウェブセキュリティというテーションを付けます。

<img width="1310" alt="スクリーンショット 2020-05-25 5.18.11.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/56eea8dc-dc10-e6db-17a4-cb7bc8abc471.png">

スーパークラスのウェブセキュリティコンフィギアアダプタから、コンフィギアメソッドをオーバーロードをするんですけど、コンフィギアメソッドは、何個かあり用途があるのですが、今回は起動させたいだけなので、オーセンテケーションマネージャービルダーという引数を取る、コンフィギアメソッドとHTTPセキュリティというオブジェクトを引数に取るコンフュギアメソッドの２つをオーバーライドします。

<img width="1310" alt="スクリーンショット 2020-05-25 5.18.11.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/320c6dc6-7609-79da-7420-43ef9c460be3.png">

<img width="1016" alt="スクリーンショット 2020-05-25 5.35.50.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/d38f7715-ed40-77b0-e8d4-82aca290ed8b.png">

これで出来ました。

<img width="1318" alt="スクリーンショット 2020-05-25 5.39.14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/e8ed4558-d2fb-db13-70d5-6acc46e3ab3c.png">

オーセンテケーションマネージャビルダーというオブジェクトを引数に取る、コンフュギアメソッドはユーザーの認識方式を決定する為のメソッドと考えて頂いたら、問題無いです。

DB（データーベース）を使ったユーザー情報を管理とLDAP(Lightweight Directory Access Protocol)を使った認証方式があるのですが、今回はデータベースの方を使います。
簡単に動作させたいだけなので、インメモリーの方で設定していきます。

<img width="1360" alt="スクリーンショット 2020-07-20 8.25.18.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/25199a0e-cedc-8cc9-b469-34094c0d5821.png">

<img width="1359" alt="スクリーンショット 2020-07-20 8.25.29.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/3ce07f46-49c0-701c-b0f3-5d7b0c43a904.png">

これが出来たら、次にここから新規で、その他でHTMLファイルを作ってください。
（上手く載せる事が出来なかったので、省略して載せますHTMLファイル名はindex.htmlと付けてください。）

<img width="1358" alt="スクリーンショット 2020-07-20 8.38.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/faeae89e-15ae-ff1d-6962-638fc2842951.png">

このように出来ていたらOK

<img width="1355" alt="スクリーンショット 2020-07-20 8.41.30.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/a6aaff72-44b2-008a-089f-a1948b2d2b36.png">

次にコントローラクラスを作ってください。

<img width="1236" alt="スクリーンショット 2020-07-20 8.45.47.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/756d0f57-2c97-4693-1d0b-00cc65966724.png">


このようにクラス名を付けて作れていたらOk
（先に作っていたので、間違えないように）

<img width="1231" alt="スクリーンショット 2020-07-20 8.46.35.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/55bb8d74-e929-364a-b48b-d489ab667f43.png">

コードもこのように書いたら、とりあえずはWebアプリケーションを起動する準備は整いました。

<img width="1354" alt="スクリーンショット 2020-07-20 8.47.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/77aa950c-16d3-3019-96fa-05f43ba9a597.png">

次にSpring bootを使ってアプリケーションを起動させます。

<img width="1359" alt="スクリーンショット 2020-07-20 10.19.15.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/6402983c-3a45-b8c5-16d0-d84444d45aa9.png">

Tomcatが起動しましたね

<img width="1359" alt="スクリーンショット 2020-07-20 10.22.30.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/88c89179-a1a9-b497-7061-4c45fcd559b4.png">

次にブラウザ上で見てみます。

<img width="1355" alt="スクリーンショット 2020-07-20 10.39.17.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/5eb1f407-419c-3483-bec8-6482a267d32d.png">

ここに先ほど決めたパスワードを入力していただくと


<img width="1363" alt="スクリーンショット 2020-07-20 10.43.17.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/8ac17e25-124b-a4ac-c41e-7322020b567e.png">


このように開きます。

<img width="1350" alt="スクリーンショット 2020-07-20 10.44.15.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451004/d2a60ada-67b9-3f91-ae52-df91fb0d2476.png">

Spring boot と　Springセキュリティを絡めて作る事が出来ましたね。

このように書いたのですが、（少し違うかも知れないのですが）参考にして頂いた動画があるので、こちらを見ながら作っていただくと分かりやすいと思います。

YouTube

TechShare　チャンネル

https://www.youtube.com/watch?v=IWH_EZwQhSY&t=1136s