🤖

【JPA】springboot環境構築からHello World!

2024/11/25に公開

0,環境構築
Windows11
MySQL8.0.40
ApacheTomcat-WebServer
springboot-STS4の4.16.1 はJDK17と互換性があり
Meaven-buildToul
JDK17-Java
Thymeleaf

環境構築

・Tomcat install
#https://tomcat.apache.org/
左バーDownload「Tomcat 9」選択
「64-bit Windows zip」をDL(お使いのOS)cドライブ配下にzipを展開

Tomcatとはwebサーバーとしてリクエストを受け付けられサーブレット(Webサーバで動くJavaプログラム)やJSP(ホームページのファイル(HTMLファイル)とJavaのプログラムが合体したもの)を実行できる無料ソフトウェア

・環境変数設定
「C:\apache-tomcat-9.0.97\lib」DLフォルダ内に「servlet-api.jar」があるのでプロパティを参照しセキュリティのオブジェクト名をコピペ

CLASSPATH「.;‪C:\apache-tomcat-9.0.97\lib\servlet-api.jar」

CATALINA_HOME「例:‪C:\apache-tomcat-9.0.97」

・Tomcat実行方法
ファイルを格納
bin\startup.bat(起動バッチ)
テスト画面の表示(ポート)localhost:8080/sample
bin\shutdown.bat(停止バッチ)

・Mysql install
#https://www.mysql.com/jp/downloads/
「MySQL Community (GPL) Downloads »」選択
「MySQL Community Server」選択

「Go to Download Page」 選択
「Windows (x86, 32-bit), MSI Installer 8.0.40 2.1M Download」選択
No thanks, just start my download.をclickすると自動DL

DLしたインストローラー起動に従いNext(デフォルト設定のままの部分は割愛)
「Choosing a Setup Type」は「full」選択
「Accounts and Roles」rootAccountのpswdを「入力」「入力確認」
※今後必要となるので忘れないように。

突き進むとMySQL Shell 8.0.40とMySQLWorkbenchが自動で立ち上がるが閉じてOK

・Win版Mysqlの環境変数設定

システム環境変数(S)
Path選択し編集、新規で「C:\Program Files\MySQL\MySQL Server 8.0\bin」を追加

MySQLをダウンロードした場所ディレクトリは初期は大体以下である「C:\Program Files\MySQL\MySQL Server(任意のバージョン)\bin」フォルダ内のmysql.exeのプロパティから参照すると間違いない。



起動確認:🔍サービス(システム)Win
状態「実行中」であればMysqlが起動中

bash
mysql -u root -p
Enter password: ********

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> #mysqlに入れたので成功


Spring Boot では、データアクセスにいくつかの方法(例、Spring Data JPA や JDBC テンプレート)がありますが、いずれもデータベースと接続するためには JDBC が必要です。

・JDK17 install
※JDK 17を使用する場合、Spring BootのバージョンもJDK 17をサポートするものにする必要がある。
JDKの配布元は複数ありますが、今回は Adoptium が配布している「Eclipse Temurin」のJDKを利用。
#https://adoptium.net/temurin/archive/?version=17
jdk-17.0.5+8
自身の環境にあったOSを選択(うp主はWindowsx64)のJDK選択

DL後インストーラ起動「次へ」
カスタムセットアップ:全ての項目をインストールするように「×」部分を「ローカルハードドライブにすべてインストール」に変更後「次へ」

「インストール」を選択
確認画面:「はい」を選択
完了画面:「完了」を選択
インストール完了後デフォルト格納先

・JDK 環境変数設定 JAVA_HOMEを設定

C:¥Program Files¥Eclipse Adoptium¥jdk-17.0.5.8-hotspot

bash
> set JAVA_HOME
JAVA_HOME=C:\Program Files\Eclipse Adoptium\jdk-17.0.5.8-hotspot\
#セットされているか確認できたら完了


・Spring Tool Suite 4のインストールと日本語化
#https://github.com/spring-projects/sts4/wiki/Previous-Versions
バージョン4.16.1のSTS(Eclipse) をインストール

Mac(Apple製CPU)の場合:ファイル名の語尾が -macosx.cocoa.aarch64.dmg
Mac(Intel製CPU)の場合:ファイル名の語尾が -macosx.cocoa.x86_64.dmg
Windowsの場合:ファイル名の語尾が -win32.win32.x86_64.zip ◀

7-Zip という解凍ツール 利用
#https://7-zip.opensource.jp/
win11の場合操作


画像開くの後「対象フォルダ」選択、「展開-」をclick
「…」参照をPC>C:ドライブ配下に設定し展開

STSは、以下のフォルダ内にインストールされ完了。

STS(Eclipse)は全編英語のソフトウェアです。そのままでも利用できますが、より便利に使えるよう、 Pleiades というソフトウェアを使ってSTS(Eclipse)を日本語化します。

・Pleiadesのinstall
#https://willbrains.jp/
Windows(青い背景)を選択、画像の.zipをDL
※お使いのOSに合わせてください

7-Zip先ほどの用途で展開

「選択」からcドライブに格納したSTSを選択し、内容を確認の上「日本語化」


STS起動後「ワークスペース」
「参照」のディレクトリ配下に新規で「workspace」任意名フォルダを作成し選択


問題なく起動できればSTSの初期画面が表示されます。

・MysqlJDBC install不要(STS仕様)
※インストール方法2パターン
「手動インストール」
「自動依存関係としてPOMに記述」◀

ファイル>新規springスターター・プロジェクト(springInitialize)
名前:demo(任意)
タイプ:Maven
バージョン17
グループcom.example
成果物:名前と同じ
バージョン:0.0.1-SNAPSHOT
説明:任意
パッケージ:com.example.demo 
「次へ」


※Spring InitializrでSpring Data JPAと一緒にMySQL Driver(またはMySQL Connector/J)を選択した場合、必要なJDBCドライバが自動的に依存関係として自動追加されるので手動で「MySQL Connector/J」のinstallや互換性は気にしなくてよい

選択済みのものを「全て✓」バージョン「3.3.6」を選択し「完了」

POM.xmlに以下の記述があるか確認、なければ手入力

pom.xml
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.32</version> <!--互換性に注意-->
</dependency>

<!--        <dependency>-->
<!--            <groupId>org.projectlombok</groupId>-->
<!--            <artifactId>lombok</artifactId>-->
<!--            <optional>true</optional>-->
<!--        </dependency>-->

Mavenの場合(pom.xmlの確認): pom.xmlを開いて、依存関係が含まれていることを確認できたら完了

この設定を pom.xml に追加することで、アプリケーションが実行される際に MySQL JDBC ドライバがクラスパスに追加され、MySQLデータベースに接続するために必要なライブラリがプロジェクトに含まれることになります。

applicationproperty
spring.application.name=demo-2
spring.datasource.url=jdbc:mysql://localhost:3306/world(worldは対象DB名)
spring.datasource.username=root
spring.datasource.password=自分のMysql、rootのパスワード(任意)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

springbootで実行
ログにエラーが出なければ問題なし
※注意:Win11のサービス⚙「実行中」であること
※注意:portの使用重複

プラグインの導入

STS、ヘルプ>マーケットプレイス
マーケットプレイスとは、Spring Tool Suite(STS)内で利用可能なプラグインや拡張機能を探してインストールするための場所

一般 > ワークスペース
以下のインストール済みのものをinstall

・Lombokのinstall
#https://projectlombok.org/download
ライブラリです。アノテーションを付けるだけでgetterやsetterなどのコードを自動生成してくれるライブラリ。

STSの設定

・Java設定-JDK17★
・ウィンドウ>設定>Java > インストール済みの JRE
「追加-add」対象のJDKを✓選択し「適用」「標準VM(次へ)」
「ディレクトリー」選択後DL済みのJDK17を選択「完了」

DLデフォルト先JDKの格納場所
Macの場合:/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
Windowsの場合:C:¥Program Files¥Eclipse Adoptium¥jdk-17.0.5.8-hotspot

対象JDKに✓選択し「適用」

・Maven設定-Javaのビルドツール★
ビルドツールとは、プロジェクトに関連するソースファイルやリソースファイルから実行可能なプログラム(成果物)を生成するための処理を自動化する機能
#https://zenn.dev/engineer38/articles/ebcee730c70b9b#:~:text=名前:demo(任意)-,タイプ:Maven,-バージョン17 グループ
※STSの仕様でプロジェクト作成の際に「タイプ:Meaven」選択済

・Server設定-Tomcat★
ファイル>新規>その他>「ウィザード選択」サーバー>サーバー(ダブルクリック)>Apache
対象のTomcatを選択「次へ」
「 Tomcat v9.0 サーバー 」選択
サーバー・ランタイム環境の「追加…」選択
Tomcatインストール・ディレクトリー「参照」から対象のTomcat9をフォルダ選択
JRE 「ワークベンチ・デフォルトJREのプルダウン選択」「対象のjdk」に変更し「完了」

以降必要とあらば

・一般 > エディター > テキスト・エディター > スペル
エンコードで「UTF-8」が選択されていることを確認「適用」

・一般 > コンテンツタイプ
「コンテンツタイプ」の「Javaプロパティファイル」をクリックし、「デフォルトエンコード」が「UTF-8」になっていることを確認、なければ入力し「更新」

・Java > コンパイラー
「コンパイラー準拠レベル」が「17」であること。「適用」コンパイラー設定が変更「はい」

・Maven > Javaコンフィギュレーター
「JREシステム・ライブラリー・バージョン」で「ワークスペースのデフォルトを使用」に変更

・Java > コード・スタイル > フォーマッター
アクティブなプロファイル」が「Eclipse[ビルトイン]」となっているのを確認して「編集」
編集画面でプロファイル名」を「Eclipse[カスタム]」に変更、「インデント」の「タブ・ポリシー」を「スペースのみ」に変更し、「適用」「OK」

・一般 > エディター > テキスト・エディター
「タブでスペースを挿入」にチェックを入れ「適用」

http://localhost:8080/ Haloworld

・「︙」パッケージ・プレゼンテーション>階層を選択


・パッケージ作成
controllerパッケージ

・Javaクラス作成
HelloSpringBootController

ディレクトリ構成

HelloSpringBootController
package com.example.demo.controller;

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

@Controller
public class HelloSpringBootController {

    @RequestMapping(value="/demo")
    private String hello(){
    return "/index.html";
    }
}

staticフォルダ右クリック>新規>その他>Web>HTMLファイル「次へ」
ファイル名「index.html」を入力「完了」

index.html
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>test</title>
</head>
<body>
    <h1>Hello World!</h1>
</body>
</html>

※プロジェクト作成の際に「Demo2Application.Java」が自動作成されているがJavaにメイン型が含まれてないと実行できない為「Hello World!」の際はコメントアウト不要


プロジェクト「実行(springbootアプリケーション)」
#http://localhost:8080/

Discussion