S2Strutsの基本的な使用方法

t
サンプルアプリケーションを作成しながら、S2Strutsの利用方法を確認する。

・struts-config.xml に設定を書きまくって、普通のStrutsの設定方法で動かす事も可能だが、せっかくなので 極力CoCの考え方に沿って
 [無設定Struts] で動くように構築する。
・ここでは S2Strutsの設定を確認する事が目的なので、O/Rマッパ(D2Dao)及び、ビュー(Mayaa)を使用しないような、簡単なアプリケーションとする。

 ※http://s2struts.seasar.org/ja/s2struts.html#Quickstart

(1) アプリケーションの概要

sample_flow.jpg

(2) アプリケーションの構成
   ・最終的なファイル構成は下図の通り。

sample1_01.jpg



・web.xml はサーブレットコンテナ(ここではTOMCAT)の設定ファイル

・struts-config.xml はStrutsの設定ファイル

・xxx.dicon はDIコンテナの設定ファイル

・action は実際にリクエストを受け取る入り口( StrutsのAction )

・dto はリクエストデータを保持するBean( StrutsのActionForm)

・service はビジネスロジッククラス

・xxxxxImpl は各インターフェースの実装クラス
 (Action、Serviceは DIするのでインターフェースと実装クラスを作成する)

・util はユーティリティ(ここに書いてる処理を各処理にゴリゴリ書けば、別になくても動く)

(3) 処理の流れ
 ・本アプリは以下の流れで処理される。
  (1) web.xmlの設定を参照して、サーブレットコンテナから S2ActionServlet へ処理が投げられる
  (2) DIコンテナの設定(app.dicon、sample1.dicon)を参照して PrintMessageAction のコンポーネントが登録される。
  (3) DIコンテナの設定(app.dicon、sample1.dicon)を参照して PrintMessageAction のインスタンスが自動生成される。
  (4) DIコンテナの設定(app.dicon、sample1.dicon)を参照して PrintMessageAction に必要なコンポーネント(service、dto)が自動登録される。
  (5) PrintMessageAction execute メソッドが実行される。

(4) 設定ファイルの内容
 ・各ファイルの内容は添付ファイル(s2struts-sample1.zip)を参照する事とし、ここでは各設定ファイル内容の具体的な説明を行う。

 [ app.dicon ]
  このファイルが seasar2のDIコンテナとしてのメインの設定ファイルで、アプリのDI設定をこのファイルに追記していく事で、挙動を追加・変更できるが、
  ここでは、下記の様にアプリ独自の設定は別ファイルにしてインクルードするように記述している。(アプリ単位やモジュール単位で設定ファイルを分ける目的)

<include path="sample1.dicon"/>

 [ sample1.dicon ]
  このファイルが本アプリの設定ファイルとなる。
  ここでは、コンポーネントとアスペクトの自動登録の設定を行っている。

<component
    class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister">

   で始まる箇所がコンポーネントの自動登録

<component class="org.seasar.framework.container.autoregister.AspectAutoRegister">
   <property name="interceptor">actionInterceptorChain</property>

   で始まる箇所がアスペクトの自動登録

(4) Tomcatのコンテキスト定義の更新
 ・コンテキスト名の編集
 ・Tomcatの設定ファイルへの反映


添付ファイル: filesample1_01.jpg 1045件 [詳細] filesample_flow.jpg 988件 [詳細] filehowto_seasar2_01.jpg 1038件 [詳細]

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-06-11 (木) 00:48:42 (3749d)