Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java AOP日志记录和数据库查询_Java_Spring_Logging_Aop - Fatal编程技术网

Java AOP日志记录和数据库查询

Java AOP日志记录和数据库查询,java,spring,logging,aop,Java,Spring,Logging,Aop,我试图使用AspectJ将查询中的参数记录到数据库中。我试图做到这一点的方法是在调用java.sql.CallableStatement,特别是setter的过程中跳进来 我举的一个例子是,String被设置为CallableStatement中的一个参数,使用parameterIndex。这基本上就是我想要捕捉的 // Set the PL/SQL parameters callableStatement.setString(1, applicationName); 在我的Aspect类中,

我试图使用AspectJ将查询中的参数记录到数据库中。我试图做到这一点的方法是在调用
java.sql.CallableStatement
,特别是setter的过程中跳进来

我举的一个例子是,
String
被设置为
CallableStatement
中的一个参数,使用
parameterIndex
。这基本上就是我想要捕捉的

// Set the PL/SQL parameters
callableStatement.setString(1, applicationName);
在我的Aspect类中,我一直在尝试从``CallableStatement`简单地返回'anything',但最终我想记录类中的所有setter。我的方法如下

@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方法在工作,因此基本设置很好,因此错误所在的是我的注释和方法体。我是SpringAOP的新手,所以一些“建议”会很有用(请原谅双关语)!我是否需要一个
@切入点
,或者我可以只修改
@左右
,使其按我的意愿运行,还是我的方法完全错误?

你是在使用hibernate进行存储过程调用吗?@dimitrisli我不这么认为。它应该只是JDBC。您的
@Around
建议中的匿名切入点应该可以,不需要先声明命名的
@pointcut
。但是,我需要帮助您的是,了解更多关于包和类名的信息,无论您是想拦截来自您自己的代码还是来自第三方代码的调用,等等。