[seasar-dev:849] Re: S2Containerを利用するの件

Junichi Kato [E-MAIL ADDRESS DELETED]
2008年 7月 8日 (火) 18:50:51 JST


加藤です.

InterceptorにDaoのプロパティとsetterを持たせて,DIさせればよいのではないでしょうか?
もちろん,publicプロパティでもよいでしょうが.

public class LoginAuthInterceptor extends AbstractInterceptor {

     private MessageDao messageDao;

// setter省略

public Object invoke(MethodInvocation invocation) throws Throwable {
// 以下,省略

}

というか,このようなメールはSeasar userの方がよいかと思います.
ここはSeasarのプロダクト開発用MLなのでw


2008/07/08 18:06 解金松 <[E-MAIL ADDRESS DELETED]>:
> S2Containerを利用する
> Interceptor を作成時、DBからデータを抽出機能がある場合、Daoを利用ほしいです。
> でも、取得ほしいのDAOは取得しなけど、どしようが。教えてください。
> 以下Interceptor クラスです。
> public class LoginAuthInterceptor extends AbstractInterceptor {
>   ...
> public Object invoke(MethodInvocation invocation) throws Throwable {
>   Object ret = null;
>   if(invocation.getClass().getName().startsWith("com.teeda.web.login.LoginPage"))
> return null;
>   if(invocation.getClass().getName().startsWith("com.teeda.web.error.ErrorPage"))
> return null;
>   HttpSession session = (HttpSession)
> container.getParent(0).getExternalContext().getSession();
>  // 取得ほしいのDaoです、
>   MessageDao dao = (MessageDao)
> this.getContainer().getComponent(MessageDao.class);
>
>  ...
>> 以上、よろしくお願いします。
> _______________________________________________
> Seasar-dev mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dev
>
>



-- 
/**
 * name : Junichi Kato
 * email : [E-MAIL ADDRESS DELETED]
 *
 * blog : http://d.hatena.ne.jp/j5ik2o/
 *
 * commiting projects :
 * http://jiemamy.org/
 * http://s2chronos.sandbox.seasar.org/
 * http://s2config.sandbox.seasar.org/
 */


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