ひがやすを技術ブログ

電通国際情報サービスのプログラマ

Seasar4 EA1

をリリースしました。
バージョンは一挙に4まであがってます。
JDK1.4ベースでbackport175のアノテーションを使ったプロダクトは、バージョン4でのリリースになります。
JDK1.5ベースでTigerアノテーションを使ったプロダクトは、バージョン5になる予定です。
リリースノート

  • backport175に対応しました。
  • コンポーネントを自動登録するFileSystemComponentAutoRegisterを追加しました。
  • アスペクトを自動登録するInterceptorAutoRegisterを追加しました。

Seasar4では、基本的にコンポーネントを設定ファイルに登録する必要はありません。DataSource等、既存のコンポーネントを使う場合は別ですが、新規に開発する分には必要ありません。
FileSystemComponentAutoRegisterが指定したパターンに一致するクラスを自動的にコンテナに登録するようになっています。
また、InterceptorAutoRegisterが指定したパターンに一致するクラスに自動的にアスペクトを登録するようになっています。
test.org.seasar.framework.container.autoをみれば、様子がつかめます。
アノテーションを使わないときには、デフォルトで自動バインディングされますし、次のように明示的に指定することもできます。


/**
* @param foo2
* @org.seasar.framework.container.Inject("foo2")
*/
public void setFoo2(Foo2 foo2) {
this.foo2 = foo2;
}
自動バインディングしないことをNoInjectアノテーションを使って明示的に指定することもできます。これは、これまでなかった機能。

/**
* @param foo2
* @org.seasar.framework.container.NoInject
*/
public void setFoo2(Foo2 foo2) {
this.foo2 = foo2;
}
アノテーションで指定した内容を設定ファイルで上書きすることもできます。
ほとんど設定ファイル不要という新世代のDIコンテナを体験できます。

DIコンテナとEJB3は良い意味で競い合い、DIコンテナの優れた機能がEJB3にフィードバックされて標準化されることは、私の願いでもあります。