* S2Struts - Strutsからseasar2を簡単に利用する為のライブラリ [#de4877c5]
** S2Strutsの基本的な使用方法 [#p65d4f01]

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

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

(1) 基本的な設定
 http://s2struts.seasar.org/ja/s2struts.html#Quickstart を参考に各ファイルを作成する。
 ※http://s2struts.seasar.org/ja/s2struts.html#Quickstart

#html(<table><tr><td style="padding-left:10px;">)
[作成後の配置]
&ref(howto_seasar2_01.jpg,nolink);
#html(</td><td>)
(1) アプリケーションの概要

#html(<table><tr><td style="padding-left:40px;">)
&ref(sample_flow.jpg,nolink);
#html(</td></tr></table>)

(2) アプリケーションの構成
   ・最終的なファイル構成は下図の通り。
#html(<table><tr><td style="padding-left:40px;">)
&ref(sample1_01.jpg,nolink);
#html(</td><td valign="top">)
&br;
・web.xml はサーブレットコンテナ(ここではTOMCAT)の設定ファイル

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

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

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

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

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

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

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

#html(</td></tr></table>)

(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の設定ファイルへの反映


トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS