[Seasar-user:2964] Re: Seasar2.3.1から2.3.3へ移行すると、diconのinitMethodのregisterAllが使えなくなるのでは?(質問)

beans no nobeans
2005年 11月 30日 (水) 10:18:15 JST


nobeansです。

> えと,InitMethod アノテーションに関して誤解があるような...
> InitMethod アノテーションによって dicon に記述しなくて済むようになったのは
>
>     <initMethod name="registerAll"/>
>
> ってやつです.
> registerAll() のように無引数のメソッドについては dicon で書かなくても
> アノテーションによって実行されるようになりましたが,
> addClassPattern(String, String) のように引数のあるメソッドは
> アノテーションで指定できるわけではありません.
> また,AspectAutoRegister の登録が不要になったわけでもありません.

えーと、その点については問題ないです。

ちょっと気になったのはAspectアノテーションの検出ロジックです。
2.3.1までは、直接ソースのクラス定義のところで@Aspect("dao.interceptor")などとアノテーションをしかけておいて、そのクラスをFileSystemComponentAutoRegisterで拾い上げると自動的にアスペクトが適用されていました。AspectAutoRegisterをかけなくても、です。(自動検出じゃなくて直接component定義しても、たぶん同じですよね。)

で、2.3.1→2.3.2にあげた結果、diconファイルは全く変更していないのに、Aspectアノテーションが拾われなくなったんです。

Aspectアノテーションというのはdiconファイルにかかなくても、ソース中だけでアスペクト定義をかけるのがメリットだと思っているので、この使い方であっていると思っていますがどうでしょうか。

AspectAutoRegisterはアノテーションとは無関係の機能で、複数のクラス(コンポーネント)に対して一気にアスペクトを適用するための手段ですよね。

上記の使い方であれば、本来AspectAutoRegisterは不要だと思うのですが…。

> > あと、s2-tigerにjarが2つ入っていましたが、2.3.1のjarだけでOKですよね?
>
> あ,ホントですね.
> clean しないでビルドされちゃったっぽい.
> s2-tiger-1.0.0.jar および s2-backport175-1.0.0.jar は不要です.
> お手数ですが削除してください.

了解です。
#すいません、2.3.2の誤記でしたね。



Seasar-user メーリングリストの案内