如何将参数值传递给方面

问题描述

我们如何从JointPoint(在logJdbcOperation中)的调用方法(deleteTask)中获取参数值(uId)?我能够记录 sql 语句和 sql 参数,但找不到记录 uId 值的方法。 请指导我。

public int deleteTask(String taskname,String uId) {
        String sql = "delete from shedlock where NAME= :name";
        MapSqlParameterSource namedParameters = new MapSqlParameterSource();
        ((MapSqlParameterSource) namedParameters).addValue("name",taskname,Types.VARCHAR);
        return namedJdbcTemplate.update(sql,namedParameters);
}
@Aspect
@Component
public class LoggingAspect {

    private static final Logger LOGGER = LogManager.getLogger(LoggingAspect.class);

    @Before("execution(* org.springframework.jdbc.core..NamedParameterJdbcOperations.*(String,..))")
    public void logJdbcOperation(JoinPoint jp) {
        Object[] methodArgs = jp.getArgs();
        String statement = methodArgs[0].toString();
        MapSqlParameterSource params = (MapSqlParameterSource)methodArgs[1];
        LOGGER.debug("SQL statement:" + statement);
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)