1. はじめに
このシリーズの完全版はここです。
Spring Tool Suite 4 (STS)を使用してWEBプロジェクトの雛形を作成する
使用するライブラリは以下です。
| ライブラリ | 説明 | 
|---|---|
| Spring Boot | Spring Bootは簡潔で効率的なアプリケーションの構築をサポートします。設定が簡略化され、生産性が向上します。Springの豊富なエコシステムと統合されており、多くの機能を提供します。 | 
| Maven | Mavenはビルドツールとして広く使用されており、依存関係管理が容易です。プロジェクトのライブラリ依存性を効果的に管理でき、ビルドプロセスが自動化されます | 
| MyBatis | MyBatisはオブジェクト関係マッピング(ORM)ツールで、SQLクエリとJavaオブジェクトのマッピングを簡素化します。SQLのカスタマイズが容易で、パフォーマンスが向上します | 
| Thymeleaf | Thymeleafはシンプルで直感的なテンプレートエンジンで、HTMLテンプレート内で動的なデータの表示と操作を行うのに適しています。Spring Bootとの統合が簡単で、デザイナーと開発者が協力しやすくなります | 
| OJDBC | Oracle Databaseとの接続に必要なJDBCドライバで、高性能なデータベースアクセスを提供します。Oracle Databaseを使用する場合、OJDBCは必須です | 
| Lombok | LombokはJavaの冗長なコードを削減し、JavaBeansやデータクラスをより簡潔に宣言できます。ゲッターやセッターなどのメソッドを自動生成することで、コードの可読性と保守性が向上します | 
| Spring Web Services(Spring WS) | Springフレームワークをベースにした、Webサービスの開発と統合を支援するためのフレームワークです | 
2. プロジェクトを新規作成
- 
「New Spring Starter Project 」という画面が表示されます。 
 TypeにMavenを選びます、一応デモ環境なので、GroupやArtifactなど項目はデフォルト値で設定します、実際のプロジェクトを作る時、しっかり決めて作ってください。
  
- 
「New Spring Starter Project Dependencies」という画面が表示されます。 
 使用するライブラリを選択します。
 今回初期に入れるライブラリは以下の6つです
| ライブラリ | 
|---|
| Spring Boot DevTools | 
| Lombok | 
| Mybatis Framework | 
| Oracle Driver | 
| Thymeleaf | 
| Spring Web Services | 
- 
Finish ボタンをクリックしプロジェクトを作成します。初回目の作成の場合、ライブラリをダウンロードするため、すこし時間がかかります。 
この時のpom.xmlは下記です。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>3.1.4</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>demo</name>
	<description>Demo project for Spring Boot</description>
	<properties>
		<java.version>17</java.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web-services</artifactId>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>3.0.2</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<scope>runtime</scope>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>com.oracle.database.jdbc</groupId>
			<artifactId>ojdbc8</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter-test</artifactId>
			<version>3.0.2</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<excludes>
						<exclude>
							<groupId>org.projectlombok</groupId>
							<artifactId>lombok</artifactId>
						</exclude>
					</excludes>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
現在は空っぽ状態です。設定が終わっていないため、実行できません。
3. プロジェクトの初期設定
設定ファイル:/demo/src/main/resources/application.properties
以下の設定内容を入れる
#WEBサービスのポート
server.port=8000
#URL内の表記部分
server.contextPath=/demo
#DataSource の Driver クラス
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
#DataSource の DB URL
spring.datasource.url=jdbc:oracle:thin:@//localhost:1521/XEPDB1
#DataSource の DB ユーザー
spring.datasource.username=DEMO
#DataSource の DB ユーザーのパスワード
spring.datasource.password=パスワード

設定完了後、実行してみる
いろんな実行方法ありますが、今回はメニューから実行します。
メニューから Run -> Run As -> Spring Boot Appをクリックする

実行成功の場合、以下のConsole画面が表示される。
Started DemoApplication in 1.481 seconds (process running for 1.975)

4. MVCの観点からPackageを作成する。
プロジェクトの構成は以下のようにします。
demo/
  ├src/main/java
    ├com.example.demo
      ├bean : DBエンティティの実装を担当します。
      ├controller : Viewとのインタラクションを制御するロジックの実装を担当します。
      ├repository : DBエンティティをJavaオブジェクトとして表現し、CRUD(Create, Read, Update, Delete)操作を提供します。
      ├service : ビジネスロジックの実装を担当します。
      └DemoApplication.java :
  ├src/main/resources
    └templates:クライアント側のView(HTML画面)
クライアントとサーバー間でデータを受け渡すについて、今回はModelAndViewとHttpServletRequestを使うため、DTO (Data Transfer Object)は使いません。
但し、画面項目の入力チェックや制限などを掛けたい場合は、DTO (Data Transfer Object)を使いましょう。

5. Helloworldを表示。
- JAVAクラスHelloWorldController.javaを実装します。
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloWorldController {
 @RequestMapping("/")
 public String hello(Model model) {
	 model.addAttribute("hello", "Hello,World!");
     return "hello";
 }
}
- HTML画面hello.htmlを実装します。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>WEB資産管理システム</title>
</head>
<body>
<h1 th:text="${hello}"></h1>
</body>
</html>
エラーがなければ以下のConsole画面にBUILD SUCCESSが表示される。

エラーが発生する場合、何か足りないと思うので、最初からやり直すか、原因を調査してください。
ツールバーからアプリケーションを実行する。
Run -> demo - DemoApplicationをクリックする

Hello,World画面が表示される。
http://localhost:8000/

5. おわりに
これだけ簡単な設定をするだけで、プロジェクトのセットアップとHelloworld画面の表示が成功したことを確認できました。
MVCの実装や、フロントエンド側のライブラリはまだ入れていないが、次のステップで説明します。




