S2Strutsの基本的な使用方法 †
t
サンプルアプリケーションを作成しながら、S2Strutsの利用方法を確認する。
・struts-config.xml に設定を書きまくって、普通のStrutsの設定方法で動かす事も可能だが、せっかくなので 極力CoCの考え方に沿って
[無設定Struts] で動くように構築する。
・ここでは S2Strutsの設定を確認する事が目的なので、O/Rマッパ(D2Dao)及び、ビュー(Mayaa)を使用しないような、簡単なアプリケーションとする。
※http://s2struts.seasar.org/ja/s2struts.html#Quickstart
(1) アプリケーションの概要
(2) アプリケーションの構成
・最終的なファイル構成は下図の通り。
|
・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の設定ファイルへの反映