Seasar DI Container with AOP

S2Tapestryを使うと、S2とTapestryが簡単に連動するようになります。
ページクラスにサービスコンポーネントが自動的に設定されるので、 ページクラスの役割は適切なサービスコンポーネントを呼び出すだけになり、 プレゼンテーション層とサービス層の役割分担も明確になります。

機能

.pageファイル内でglobalオブジェクト経由でcontainerの中身を呼べます。
Pageオブジェクト(だいたいはBasePageを継承したクラス)のトップレベルのクラスに対して、オートインジェクションを行います。
Tapestryのサービス(拡張子applicationファイルのserviceノードで指定)に対してオートインジェクションを行います。
ページ遷移時にページのBeanデータをコピーします。
リスナーメソッドを、IPage実装オブジェクトからS2コンテナ上のオブジェクトに委譲する
IPage実装クラスにAOPを適用する

準備

使用するサーブレットをorg.seasar.tapestry.S2TapestryServletに変更します。

使い方

.pageファイル内global経由のcontainerの中身の呼び出し機能

.pageファイル内にて、 global.<コンポネント名>で呼び出せます。

Pageオブジェクトのトップレベルのクラスに対しのオートインジェクション機能

app.diconファイルにS2Tapestry.diconを登録してください。 デフォルトでトップレベルのインジェクションクラスが記述してあります。

Tapestryのサービスに対するオートインジェクション機能

自動で実行されます。

ページ間Beanデータコピー機能

上に同じ。

リスナーメソッドを、IPage実装オブジェクトからS2コンテナ上のオブジェクトに委譲する

S2Tapestry.diconをincludeする。

そしてHTMLファイルに listener="ognl:global.listeners.sampleComponent.sampleMethod" のようにリスナを指定する。

IPage実装クラスにAOPを適用する

diconファイルに設定を記述する。


サンプルの動かし方

1.S2TapestryFullをeclipseのプロジェクトとしてインポート 2.Tomcatプロジェクトである事を確認した上でTomcatを起動 3.http://localhost:8080/S2TapestryExample/appをひらく 注:eclipseとTomcatプラグインをいれている事を前提としています。
 
   
it end -->