JDBC Aspect pointcut не вызывается - PullRequest
0 голосов
/ 24 января 2019

Во-первых, я использую AspectJ Aspect для регистрации времени выполнения и запроса параметров из шаблона JDBC.

В моем проекте у меня есть другой аспект, который регистрирует мои методы обслуживания, и этот работает нормально.

Я пытался воспроизвести ту же конфигурацию для перехвата операций JDBC, но мой аспект не вызывался, поскольку я пытался выполнить свой код в режиме отладки и никогда не достигал своей первой точки останова.

Я видел этоЕсть несколько проблем на одну и ту же тему, и я попробовал несколько предложенных решений, но ни одна из них не сработала в моем случае.

Моя конфигурация аспекта для Poincut выглядит следующим образом:

@Aspect
@Slf4j
@Component
public class SQLLoggingAspect {

private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd");
private static final DateTimeFormatter  TIMESTAMP_FORMATTER  = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");

@Pointcut("execution(* org.springframework.jdbc.core.JdbcOperations.*(..))")
public void sqlMethods(){}

@Before(value = "sqlMethods()", argNames = "joinPoint")
public void log(JoinPoint joinPoint) throws Throwable {
    Object[] methodArgs = joinPoint.getArgs(),

Я не объявил ни одного авто-прокси aspectJ, так как мой первый аспект работает без него и поскольку Spring должен обрабатывать его автоматически какЯ понимаю.

Я не знаком с такого рода разработкой.Может быть, я делаю что-то глупое.

1 Ответ

0 голосов
/ 25 февраля 2019

Я обнаружил, что проблема в том, что я должен был настроить авто-прокси для перехвата вызовов SQL.

Я просто использовал:

@ EnableAspectJAutoProxy

...