[Seasar-user:8129] Re: S2Container とTeedaのバージョンを変更するとInterceptorにDIされません
Ito Yoshiichi
[E-MAIL ADDRESS DELETED]
2007年 6月 6日 (水) 21:43:06 JST
こんにちは。
GLAD!! こと伊藤です。
> -----Original Message-----
> Subject: [Seasar-user:8124] Re: S2Container とTeedaのバージョンを変更す
> るとInterceptorにDIされません
>
> ひがです。
>
> > 竹内と申します。
(中略)
> > 自分は今のところ、以下のようにinvoke()の頭で毎回コンテナから
> > 取得しするという形で対応しています。
> > LoginUserDto loginUserDto = (LoginUserDto) SingletonS2ContainerFactory
> > .getContainer().getComponent(LoginUserDto.class);
> >
> > もし、Seasar的にもっとスマートな方法があれば自分も知りたい
> > ところですのでご教授ください。
> >
> 私は、Interceptorでセッションやリクエストスコープの
> コンポーネントを取得したいときは、
> SingletonS2ContainerFactory.getContainer().getComponent()
> をつかっちゃえ派です。
ささやかなこだわりなのですが...
S2Container を DI して getComponent() するのが
スマートかなと僕は思います。
private S2Container container;
public void setContainer(S2Container conatiner) {
this.container = container;
}
public Object invoke(...) {
LoginUserDto loginUserDto = (LoginUserDto)
container.getComponent(LoginUserDto.class);
}
ただし、取得できるのは同じ .dicon か include している .dicon
に登録されたコンポーネントだけですが。
Seasar-user メーリングリストの案内