未调用JDBC Aspect切入点

时间:2019-01-24 09:15:57

标签: java spring-boot aspectj jdbctemplate

首先,我正在使用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 autoproxy,因为我的第一个方面没有它,而且按照我的理解,spring应该自动处理它。

我不熟悉这种发展。也许我在做些愚蠢的事。

1 个答案:

答案 0 :(得分:0)

我发现我的问题我必须设置自动代理来捕获SQL调用。

我刚刚使用了:

  

@EnableAspectJAutoProxy