S2でインタータイプ
このままじゃ落ち込みそうなんで、技術ネタでも。
S2 で自作インタータイプをつかうには
- InterTypeインタフェースを実装したクラス、またはAastractInterTypeを継承したクラスを用意
- introduce (だっけかな?)メソッドを実装
- javassist または AastractInterType の便利メソッドを利用してクラスを拡張。フィールドの追加やメソッドの追加が可能。アノテーションを追加する方法がわからん(´・ω・`)
- インタータイプを組み込みたいコンポーネント定義に設定を追加。
という流れで手軽にできました。私が実際に行ったのは、プロパティを増やして、それらのsetter/getter を他のクラスから呼び出せるようにインタフェースを追加しました。
あと、実装上の事情により、Seasar 管理下にないクラスにアスペクトを適用しました。AopProxy を使うと手軽にアスペクトを適用できました。
以上、チラシの裏でした。