[seasar-dev:454] [S2Container] TigerAnnotationHandler の initialize について
KOMORI Yusuke
y-komori @ nifty.ne.jp
2006年 7月 9日 (日) 01:05:59 JST
To:こばやしさん
小森です。
TigerAnnotationHandler でちょっと質問&回避策の提案です。
S2JFaceで独自のComponentDefクラスを作っているのですが、そのクラスを
TigerAnnotationHandler#addComponentDefBuilder() を使って登録しています。
このメソッドを呼び出すタイミングは、S2Containerを初期化する前で行って
いるのですが、現状の実装だと createComponentDef() メソッドが呼ばれた時に
はじめて initialize() メソッドが走るようになっていますね。
で、initialize() の中で呼ばれる loadDefaultComponentDefBuilder() メソッ
ドの中で、clearComponentDefBuilder() されているため、先に登録しておいた
独自のComponentDefクラスが無効になってしまいます。
回避策としては、static ブロックでクラスロード時に初期化してしまうか、
loadDefaultComponentDefBuilder() の最初で componentDefBuilders を初期化
しないようにするかのどちらかになると思うのですが、いかがでしょうか。
(とりあえず、手元では後者で回避しています)
----------------------------------------------
小森 裕介 / Yusuke Komori
E-Mail:y-komori @ nifty.ne.jp
Blog:http://d.hatena.ne.jp/y-komori/
URL:http://www.littleforest.jp/
Seasar-dev メーリングリストの案内