[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 メーリングリストの案内