JDBC 切入点未被调用
JDBC Aspect pointcut not invoked
首先,我使用 AspectJ 方面来记录执行时间并从 JDBC 模板请求参数。
在我的项目中,我有另一个方面正在记录我的服务方法,这个方面工作正常。
我试图重现相同的配置来捕获 JDBC 操作,但我的方面没有被调用,因为我试图在调试中执行我的代码,但我从未到达我的第一个断点。
我看到同一主题有多个问题,我尝试了几个建议的解决方案,但 none 对我的情况有效。
我的 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 应该会自动处理它。
我不熟悉这种开发。也许我在做一些愚蠢的事情。
我发现了我的问题,我必须设置自动代理来捕捉 SQL 调用。
我刚刚使用了 :
@EnableAspectJAutoProxy
首先,我使用 AspectJ 方面来记录执行时间并从 JDBC 模板请求参数。
在我的项目中,我有另一个方面正在记录我的服务方法,这个方面工作正常。
我试图重现相同的配置来捕获 JDBC 操作,但我的方面没有被调用,因为我试图在调试中执行我的代码,但我从未到达我的第一个断点。
我看到同一主题有多个问题,我尝试了几个建议的解决方案,但 none 对我的情况有效。
我的 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 应该会自动处理它。
我不熟悉这种开发。也许我在做一些愚蠢的事情。
我发现了我的问题,我必须设置自动代理来捕捉 SQL 调用。
我刚刚使用了 :
@EnableAspectJAutoProxy