0

カスタム JodaJdbcTemplate クラスがあります。クエリを実行できるのは単純な queryImpl です。

例えば

jodaJdbcTemplate.update("INSERT INTO bla bla...");

このメソッドが実行されるたびに、特定の例外 ( DeadlockLoserDataAccessException )をキャッチする必要があります。

私は Aspect クラスを書き、そのようなアスペクト構成を持っています:

@Around("execution( * org.springframework.jdbc.core.JodaJdbcTemplate (..))")

例外を取得

java.lang.IllegalStateException: Failed to load ApplicationContext
    at org.aspectj.weaver.tools.PointcutParser.resolvePointcutExpression(PointcutParser.java:317)
    at org.aspectj.weaver.tools.PointcutParser.parsePointcutExpression(PointcutParser.java:295)
    at org.springframework.aop.aspectj.AspectJExpressionPointcut.buildPointcutExpression(AspectJExpressionPointcut.java:208)

みんな、私は何を間違えたの?

4

3 に答える 3

0
@Aspect
public class LoggingAspect {

   @AfterThrowing(
  pointcut = "execution( * org.springframework.jdbc.core.JodaJdbcTemplate.update(..))",
  throwing= "error")
    public void logAfterThrowing(JoinPoint joinPoint, Throwable error) {
    System.out.println("Exception : " + error);
    }
}
于 2013-06-04T19:07:58.483 に答える
0

"execution( *" -> "execution(*") からスペースを削除してみてください。それ以外の場合は問題ないように見えます。

于 2013-06-03T09:48:19.003 に答える