✍️ はじめに
今回から、いよいよ 『掲示板アプリ v2』 の実装に入っていきます。
v2は、GitHub上に公開している旧掲示板アプリ(v1)をベースに、以下のような観点から設計・実装を見直した改良版となります:
-
機能設計の明確化(Vol.17までで定義済みのカテゴリ構成)
-
コード構造や可読性の改善
-
ユーザビリティや運用性の向上
このような背景から、v2は既存v1とは独立したMavenプロジェクトとして、環境構築から始めていきます。
まずは、v2の開発環境・動作環境・使用ライブラリの定義を整理しておきましょう。
🛠 今回の対象(Vol.18 の目的)
本記事では、以下の点を明確にします:
項目 | 内容 |
---|---|
💻 開発・動作環境 | OS、IDE、JDK、Tomcatなど |
📦 使用ライブラリ |
pom.xml に記述するMaven依存関係 |
🔗 補足 | Mavenの基本解説はVol.4・Vol.5を参照 |
💻 開発・動作環境(掲示板アプリ v2)
項目 | バージョン・備考 |
---|---|
OS | Windows 10 / 11(macOSも可) |
IDE | Eclipse IDE for Enterprise Java Developers(2023-12 以降推奨) |
JDK | Java SE 11(11.0.22など) |
Apache Tomcat | 9.0.x(最新版で可) |
ビルドツール | Apache Maven 3.8.x(3.8.8など) |
Webブラウザ | Google Chrome 最新版 |
DB | MySQL(5.7~8.0) or MariaDB 互換で可 |
※JDKは Struts2が推奨するLTS版のJava11 を採用
※Tomcatは Servlet 4.0対応済みのv9.x系 を前提とします
📦 使用ライブラリ一覧(概要)
まずは、掲示板アプリ v2 で使用しているライブラリの概要を以下の表にまとめます。用途別に整理し、pom.xmlの設定はこの後に続きます。
項目 | 内容 | 使用用途 | 備考 |
---|---|---|---|
Struts2 Core |
struts2-core (2.5.30) |
MVCフレームワークの中核 | Struts2標準機能を使用 |
Servlet API |
javax.servlet-api (4.0.1) |
HttpServletの基本機能 | Tomcat提供のため provided スコープ |
JSP API |
javax.servlet.jsp-api (2.3.3) |
JSPファイルの解釈・実行 | こちらも provided スコープ |
JSTL |
jstl (1.2) |
JSTLタグライブラリ(JSP制御用) | 標準JSP拡張タグライブラリ |
MySQL Connector/J |
mysql-connector-java (8.0.33) |
MySQLへのJDBC接続 | 使用DBに応じて変更可(MariaDBなど) |
SLF4J API |
slf4j-api (1.7.36) |
ログ出力の抽象レイヤー | 実装はLog4jを使用 |
SLF4J - Log4j Binding |
slf4j-log4j12 (1.7.36) |
SLF4JログをLog4jとして出力 | 実行時ログ出力のためのバインディング設定 |
🧾 pom.xmlの設定(依存関係)
上記ライブラリを使用するための pom.xml
の <dependencies>
セクションは以下の通りです。
<dependencies>
<!-- Struts2 -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.26</version>
</dependency>
<!-- Logging: Log4j2 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.14.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.14.1</version>
</dependency>
<!-- JDBC + MySQL -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.32</version>
</dependency>
<!-- Servlet API(providedスコープ) -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<!-- Struts2 依存 -->
<dependency>
<groupId>ognl</groupId>
<artifactId>ognl</artifactId>
<version>3.1.29</version>
</dependency>
<dependency>
<groupId>xmlpull</groupId>
<artifactId>xmlpull</artifactId>
<version>1.1.3.1</version>
</dependency>
<dependency>
<groupId>xpp3</groupId>
<artifactId>xpp3_min</artifactId>
<version>1.1.4c</version>
</dependency>
</dependencies>
必要に応じて commons-logging
, struts2-junit
, struts2-json-plugin
などの追加も可能です。
📖 補足:MavenやStruts2の基礎について
本記事ではMavenやStruts2の基礎解説には触れていません。
以下のブログにて詳しく解説していますので、必要に応じてご参照ください:
✍️ おわりに
v2の開発に入る前に、動作環境や使用ライブラリの前提を明確にしました。
本記事の内容に沿って、次回は 「Mavenプロジェクトを手動で作成する手順」 に進みます。
👉 Vol.19へ:Eclipseでv2用Mavenプロジェクトを作成する(※リンクは後日)