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の実装や、フロントエンド側のライブラリはまだ入れていないが、次のステップで説明します。