[Seasar-user:21470] S2JDBC の Interceptor はどうすれば良いのでしょうか。

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2012年 9月 19日 (水) 12:05:26 JST


いつも大変お世話になっております。 
pianyi と申します。 

現在、SAStrus2.4.44 + S2JDBCを使って開発を行っております。

今回、処理時間にシビアなユーザーの為、Action、Service、(Logic)、SQLの各箇所で処理時間計測し、
速度改善に役立てたいと考えておりますが、S2JDBCにInterceptor を追加することは出来ないのでしょうか?

ActionとServiceには、Interceptor の追加は出来ました。
また、以前S2Daoで行ったことがあるため、同じように、"daoCustomizer"に追加しましたが呼び出されませんでした。

別のやり方があるのでしょうか。
間違い、別の良い方法等ございましたらご教授願います。

以上、よろしくお願いいたします。


以下、設定を載せて置きます。


*********************** customizer.dicon ***********************
<component name="daoCustomizer" class="org.seasar.framework.container.customizer.CustomizerChain">
    <initMethod name="addAspectCustomizer">
        <arg>"dbAccessLogInterceptor"</arg>
    </initMethod>
</component>


*********************** ログ出力クラス ***********************
public class DbAccessLogInterceptor extends AbstractInterceptor {
    private final Logger logger = Logger.getLogger(getClass());
    @Override
    public Object invoke(MethodInvocation invocation) throws Throwable {
        Object result = null;
        // 時間計測(開始)
        double startTime = 0;
        try {
            startTime = System.nanoTime() / (1000 * 1000);
            result = invocation.proceed();
        } finally {
            double endTime = System.nanoTime() / (1000 * 1000);
            String name = getTargetClass(invocation).getSimpleName() + "#" + invocation.getMethod().getName();
            logger.debug("実行メソッド名:" + name + " 処理時間:" + (endTime - startTime) + "ミリ秒");
        }
        return result;
    }
}


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