InterceptorにrequestがDIされない

と同僚が質問してきた。
独自Interceptorを作成し、app_aop.diconにコンポーネントを追加したが、instance属性を指定しなかったため、singletonとしてTomcat起動時に独自Interceptorが生成される。しかしながら、requestは当然リクエスト時に作成されるため、独自Interceptor生成時点ではrequestインスタンスは存在しないため、DIされない。
そのため、instance属性をrequestと指定するように依頼した。そうするとhotdeploy環境ではDIされることが確認できた。
しかし、InterceptorからLogicをDIする設定にしているのだが、DIされない。app_aop.diconにコンポーネントを追加したため、SMART Deployではなくなっていた。InterceptorCreatorにより、interceptorパッケージにあるInterceptorプレフィックスのクラスはコンポーネントとして登録されるのだから、app_aop.diconにわざわざコンポーネントを登録する必要はない。なので、app_aop.diconから独自Interceptorの行を削除したところ、Pageクラスのinitializeメソッドに織り込んでいた独自Interceptorは実行されて、LogicもDIされているのを確認した。
めでたしめでたし。だが、なぜLogicがDIされないのかの原因が分からない。
あとCoolDeployで実行するとどうなるかをしてみなくてはならないが、

この状態で、HOT deploy な環境で動作テストをしているとちゃんと動いたので、COOL deploy で動かしてみるか〜と動かしてみると・・・ForPageInterceptor には HttpServletRequest が DI されるのに、ForDaoInterceptor には DI されなくなっちゃいました。

http://d.hatena.ne.jp/Ewigkeit/20080318/1205849053

にあるKoichiさんのコメントにある対応をしなくてはならないかもしれない。