プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
Java、SAStruts、プロジェクト構成
今Javaのお仕事やってるんですけどね。
フレームワークがSAStrutsなんですよ。
あんまり情報が転がっていない中ちまちまやっていまして
やっとこさ少しずつ分かってきたのですね。
と言う訳で忘れる前に吐き出しておこうかと思ったわけです。

まずは一番最初に悩んだプロジェクト構成。
まぁどんなものはどこに書くかってことですな。
地味に悩むんですよねー、何をどこに書くか。

[パッケージ].action
→アクションとか言う奴でリクエストを受け付ける奴らです。
 普通は1ユースケースで1アクションとするらしいです。
 1つのアクション内に複数メソッド書けるので、機能単位でアクション作って
 リクエスト単位でメソッド作るイメージでしょうかね。

[パッケージ].form
→アクションフォームとか呼ばれている奴らです。
 ちょー大雑把に言うと、リクエストパラメータを入れる箱。
 注意点として1アクションに1つしか割り当てられないみたいです。
 リクエスト毎に別のアクションフォームとかはできないみたい。
 要はそのユースケース(アクション)で使用するパラメータは
 全部一個のアクションフォームに書けってことみたいです。

[パッケージ].interceptor
→インターセプターはここに書く・・ことに私はしました。
 インターセプターがなにかってのは長くなるので今は省略。
 共通前処理とか共通後処理とかやりたい人は使うと思います。
 インターセプター使わないならいらんパッケージ。

[パッケージ].entity
→DBから取ってきたデータを入れる箱。
 1クラス1テーブルでプロパティはテーブルのカラムと対応・・かな(--?

[パッケージ].service
→ビジネスロジックはここに書くらしいです。
 よく分からんのが『エンティティと一対一で割り当てるのが推奨される』部分。
 多分hoge_tableのエンティティをHogeとか作って
 それの操作クラスをHogeServiceとかしてここに入れろってことなんでしょうが
 じゃあテーブルに対応しないロジックはどーすればいーんだべ(--?
 それもserviceに入れるの?それともアクション内で実装?よく分からん。

[パッケージ].util
→ユーティリティ。通常はstaticメソッドで構成されるそーです。
 チェック系とか変換系のどこでも使う部品なんかを入れればいーのかな。

[パッケージ].dto
→データを入れる箱。エンティティと何が違うの(--?
 よく分からんけど私の基準はテーブルに対応する箱はエンティティ、
 それ以外はDTOかなーって感じです。
 セッション値とかそーゆー奴の箱はここに定義するのでしょう。

/WEB-INF/view/XXX/
→view/下にアクション名から「Action」取ったフォルダ作って
 そこにjspを突っ込むんだそーな。
 例えばアクション「HogeAction」があったら「view/hoge/」ね。
 共通で使うcssとかJavaScriptなんかはWEB-INF/と同階層(webapp/下)に置くと
 ルート「/」アクセスで参照できます。/cssとか。

基本はそんな感じだと思います。
間違ってたらごめんなさいね。
実は今でもたまに「この処理はどこにおけばいーんだ(--?」と悩んでおります。
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● Java  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事