本記事では、掲示板アプリケーションを構築するための環境設定手順を解説します。対象読者は、JavaやWebアプリケーション開発の初心者を想定しています。
📌 前提条件
掲示板アプリケーションの開発・動作確認には、以下の技術要素が必要です。
使用技術
分類 | 技術名 / バージョン例 |
---|---|
プログラミング言語 | Java SE 17(Eclipse 2023-09標準 JDK使用) |
フレームワーク | Apache Struts2 (2.5.26) |
データベース | MySQL 8.0.32 |
ビルドツール | Apache Maven 3.8.x(pom.xml に準拠) |
アプリケーションサーバ | Apache Tomcat 9.x |
その他 | JSTL 1.2、MySQL Connector/J 8.0.32(JDBCドライバ) |
開発環境
項目 | 内容 |
---|---|
IDE(統合開発環境) | Eclipse IDE 2023-09(Enterprise Java & Web Developers版) |
OS | Windows 10 / 11 |
Java開発キット(JDK) | JDK 17(EclipseバンドルJDK使用) |
データベース | MySQL Community Server 8.0.32 |
アプリケーションサーバ | Apache Tomcat 8.5.96 |
使用ライブラリ
項目 | 内容 | 使用用途 | 備考 |
---|---|---|---|
HikariCP | com.zaxxer:HikariCP:3.4.5 | 高速・軽量なJDBCコネクションプールライブラリ | 接続プールの性能・安定性が高く、多くの現場で採用 |
Struts2 Core | org.apache.struts:struts2-core:2.5.26 | Struts2フレームワークの中核ライブラリ | Struts2の画面遷移、OGNL連携の基盤となる |
Log4j API | org.apache.logging.log4j:log4j-api:2.14.1 | ロギング用API(ログの出力・管理のインタフェース) | 設定ファイル(log4j2.xml等)と連携して動作 |
Log4j Core | org.apache.logging.log4j:log4j-core:2.14.1 | ロギング処理の実装部分(Log4jの本体) | APIとセットで使用、単体では動作しない |
Servlet API | javax.servlet:javax.servlet-api:4.0.1(scope: provided) | サーブレット仕様のAPI、Tomcat等アプリサーバ提供 | providedスコープのためWARに同梱されない |
MySQL Connector/J | com.mysql:mysql-connector-j:8.0.32 | MySQLデータベース用のJDBCドライバ | MySQL用のDB接続に必須のライブラリ |
OGNL | ognl:ognl:3.1.29 | Struts2で使用される式言語ライブラリ(データ参照等) | Struts2の画面とアクションのデータバインドに必要 |
XmlPull | xmlpull:xmlpull:1.1.3.1 | XMLパース用の軽量ライブラリ | Struts2の内部依存で使用 |
XPP3 Min | xpp3:xpp3_min:1.1.4c | XmlPull Parserの実装、XMLデータの読み込みに使用 | XmlPullの実装ライブラリ、単体利用はほぼない |
🛠️ EclipseでのMavenプロジェクト作成手順
Eclipse IDEを使用して、Mavenプロジェクトを作成する手順は以下の通りです。
-
Eclipseの起動
Eclipseを起動し、作業用のワークスペースを選択します。 -
新規Mavenプロジェクトの作成
メニューから「File」→「New」→「Maven Project」を選択します。 -
プロジェクトの設定
-
Group Id:
com.company.bulletinboard
(例) -
Artifact Id:
Bulletinboard
(例) -
Version:
1.0.0
(デフォルトで問題ありません) -
Package:
com.company.bulletinboard
(例)
-
Group Id:
-
プロジェクトの作成
設定が完了したら、「Finish」をクリックしてプロジェクトを作成します。 -
プロジェクト構造の確認
作成されたプロジェクトの構造を確認し、必要に応じてフォルダやファイルを追加します。
🗂️ プロジェクト構成の説明
以下は、掲示板アプリケーションのプロジェクト構成です。各ディレクトリやファイルの役割を説明します。
src/main/java/com/company/bulletinboard
- Javaのソースコードを配置するディレクトリです。
- パッケージ構成に従って、コントローラー、サービス、DAOなどのクラスを配置します。
src/main/resources
- アプリケーションの設定ファイルやリソースファイルを配置します。
- 例:
-
db-config.properties
: データベース接続設定 -
log4j2.xml
: ログ設定ファイル -
struts.xml
: Struts2の設定ファイル -
struts.properties
: Struts2のプロパティ設定
-
src/main/webapp
- Webアプリケーションのルートディレクトリです。
- 静的リソースやJSPファイルを配置します。
src/main/webapp/login.jsp
- ログイン画面のJSPファイルです。
src/main/webapp/WEB-INF
- Webアプリケーションの設定ファイルを配置するディレクトリです。
-
web.xml
: デプロイメントディスクリプタ(アプリケーションの設定ファイル)
src/main/webapp/view
- アプリケーションのビュー(JSPファイル)を配置するディレクトリです。
🧾 データベースとテーブル作成について
掲示板アプリケーションに必要なデータベースやテーブルの作成SQLは、以下のGitHub上の手順書に記載されています。
📘 詳細は以下をご参照ください:
◆ 該当箇所
- 「6. データベース設定(概要)」
- 「8-3-1. データベース・テーブル追加 SQL」
これらに従って、MySQL上にデータベースおよび必要なテーブルを準備してください。
📝 まとめ
このVol.5では、掲示板アプリケーションを動作させるための環境構築方法を解説しました。特に、指定されたバージョンの技術要素(Java, Struts2, MySQLなど)を用意することが前提となります。
今後のVolでは、プロジェクトのビルド・実行手順や、各機能の内部構成に進んでいきます。
次に読むべき記事
▶️ 次回
📘 Vol.6:BaseActionクラスの詳細解説【Struts2の要】
🧭 Vol.1〜7 関連リンク
回 | タイトル | 主な内容 |
---|---|---|
Vol.1 | プログラミングとの再会 – 「画面ありき」で変わった学び方 | プログラミング再入門と、画面駆動の学習法というユニークなアプローチの紹介。最初に「画面」から考えることでモチベーションを継続。 |
Vol.2 | 画面駆動設計に基づく設計書の具体例:画面フローからUI設計・処理定義まで | 実際に描いた画面遷移図・UI設計・処理定義書を公開し、画面中心の設計手法を解説。 |
Vol.3 | 詳細設計編:ER図で見るデータ構造と実装の土台 | 実装前提で設計された ER図(Entity Relationship 図) をもとに、データ構造と整合性を設計。 |
Vol.4 | Struts2とMavenの基礎と設定ファイルの役割 | Struts2の構成とMavenでの管理、web.xml や pom.xml の役割を丁寧に解説。 |
Vol.6 | BaseActionクラスの詳細解説【Struts2の要】 | すべてのアクションに共通する基底クラス BaseAction を定義し、ログ出力や共通処理を集約。 |
Vol.6.1 | BaseAction の活用例【共通基底クラスでセッション管理を簡素化】 | BaseAction を継承する具体的なアクション例を紹介し、セッションやログ処理の統合例を実践。 |
Vol.7 | Struts2 における MVC モデルの全体像 | Model-View-Controller の各要素が Struts2 でどう分担されるかを体系的に解説。 |
Vol.7.1 | Struts2 における Model(モデル)について | JavaBeansベースのModelクラス(User, Thread, Post など)設計とその役割を明確化。 |
Vol.7.2 | Struts2 における Controller(コントローラ)の責務 | Actionクラスを軸に、入力処理・分岐処理・画面遷移の中核を担うControllerの実装指針を提示。 |
Vol.7.3 | Struts2 における struts.xml の書き方と役割 | URLマッピング、結果遷移、アクション定義の方法を丁寧に記述。初心者の詰まりやすいポイントを回避。 |
Vol.7.4 | struts.xmlの高度な設定と実践活用(Struts2) | namespaceの活用や画面単位での分離設計、開発時の保守性向上テクニックを紹介。 |