我试图通过使用AspectJ将查询中的参数记录到数据库中。我尝试这样做的方法是在调用java.sql.CallableStatement
期间跳入,特别是设置者。
我所拥有的一个例子就是String
被设置为CallableStatement
中带有parameterIndex
的参数。这基本上就是我想要捕捉的内容。
// Set the PL/SQL parameters
callableStatement.setString(1, applicationName);
在我的Aspect课程中,我一直在尝试(无济于事)而只是回过头来做什么'来自``CallableStatement`虽然最终我想记录课堂上的所有设置者。我的方法如下。
@Around("call(* java.sql.CallableStatement.*))")
public void logGetters(ProceedingJoinPoint jp) throws Throwable{
LOGGER.info("QWERTY" + "Arguments: " + Arrays.toString(jp.getArgs()) + "Method: " + jp.getSignature().getName());
}
我确实有其他AOP方法正常工作,因此基本设置很好,所以它是我的注释和错误所在方法的主体。我对Spring AOP很陌生,所以有些建议'会有用(原谅双关语)!我首先需要@Pointcut
还是我可以修改@Around
以使其按照我的意愿运作,或者我的方法是完全错误的?