首先,我正在使用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应该自动处理它。
我不熟悉这种发展。也许我在做些愚蠢的事。
答案 0 :(得分:0)
我发现我的问题我必须设置自动代理来捕获SQL调用。
我刚刚使用了:
@EnableAspectJAutoProxy