🧭 はじめに
前回は Struts2 の MVC モデル全体像について解説しました。
今回はその中でも 「Model」層 に焦点をあてて、役割や構成要素、
そして本プロジェクトでの具体的な活用例を紹介します。
Model層の主な構成要素
💡 Model 層とは?
Model 層は、アプリケーションの「データの管理とビジネスロジック」を担当します。
具体的には次の2つの要素に分けられます。
💡 DAOの役割
DAO(Data Access Object)は、データベースとのやりとりを担うクラスで、SQL文の組み立て・実行や結果セットの処理を行います。
💡 JavaBeansの役割
JavaBeansは、プロパティ(データ)に対してgetter/setterを使ってアクセスするシンプルなJavaオブジェクトです。
✅ DAO(Data Access Object)
DAO は、データベース操作を担うクラスです。以下のような責務があります:
- SQL 文の組み立て・実行(SELECT / INSERT / UPDATE / DELETE)
- JDBC や ORマッパー(MyBatis など)との連携
- 結果セットの処理・オブジェクト変換
💡 DAO の目的は「ビジネスロジックとDBアクセスを分離する」ことです。
👉 本プロジェクトでは:
/dao
配下に DAO クラスを配置し、
ユーザー・スレッド・投稿などの DB 操作を集約しています。
✅ JavaBeans(または DTO)
JavaBeans は、データ構造を保持するだけのシンプルな Java オブジェクトです。
public class User {
private int userId;
private String username;
// getter / setter
}
主な特徴は以下の通り:
-
各プロパティへのアクセスは getter / setter を通じて行う
-
引数なしコンストラクタを持つ
-
Serializable に対応可能(必要に応じて)
👉 本プロジェクトでは:
User.java のようなクラスを利用し、
画面表示用や DAO とのデータ受け渡しに活用しています。
例えば:
-
ユーザー情報を保持する User.java
-
掲示板スレッドを保持する Thread.java
-
投稿情報を保持する Post.java
などが存在し、全体のデータ処理をスムーズにしています。
User.javaは、ログインユーザーや投稿者情報など、本プロジェクトの多くの機能で利用される基盤的なJavaBeanです。
📝 Model 層のポイントまとめ
要素 | 役割 | 本プロジェクトの使用場所 |
---|---|---|
DAO | DB操作を抽象化・集約 |
/dao 配下の UserDao.java など |
JavaBeans | データ構造の保持 |
/model 配下の User.java , Thread.java など |
🚩 次回予告
次回は「📘 Vol.7.2:Struts2 における Controller(コントローラ)の責務
」について解説予定です。
POJOベースで構成される Struts2 の Action クラスの特性を活かし、
シンプルかつ柔軟なコントローラ設計を紐解いていきます!
🧭 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.5 | 環境構築編:掲示板アプリケーションの実行準備 | TomcatとEclipseでの動作環境構築。 |
Vol.6 | BaseActionクラスの詳細解説【Struts2の要】 | すべてのアクションに共通する基底クラス BaseAction を定義し、ログ出力や共通処理を集約。 |
Vol.6.1 | BaseAction の活用例【共通基底クラスでセッション管理を簡素化】 | BaseAction を継承する具体的なアクション例を紹介し、セッションやログ処理の統合例を実践。 |
Vol.7 | Struts2 における MVC モデルの全体像 | Model-View-Controller の各要素が Struts2 でどう分担されるかを体系的に解説。 |
Vol.7.2 | Struts2 における Controller(コントローラ)の責務 | Actionクラスを軸に、入力処理・分岐処理・画面遷移の中核を担うControllerの実装指針を提示。 |
Vol.7.3 | Struts2 における struts.xml の書き方と役割 | URLマッピング、結果遷移、アクション定義の方法を丁寧に記述。初心者の詰まりやすいポイントを回避。 |
Vol.7.4 | struts.xmlの高度な設定と実践活用(Struts2) | namespaceの活用や画面単位での分離設計、開発時の保守性向上テクニックを紹介。 |