我对AspectJ很新,有一个问题,即使有些研究我无法解决。关于银行我有以下方面,该方面检查银行的余额是否在每次公开方法调用后都持有。使用AspectJ递归
pointcut BankCheck(Bank bank): call(public * Bank.*(..)) && target(bank);
Object around(Bank bank): BankCheck(bank) {
int balance = bank.getTotalBalance();
Object result = proceed(bank);
if (balance != bank.getTotalBalance()) {
LOGGER.warn("The total balance of the bank is not equal.");
} else {
LOGGER.info("Ok");
}
return result;
}
的问题是,在该方面我使用的方法bank.getTotalBalance(),它本身是一个公共银行方法。因此,每次都会建议此方面,并且此递归问题会持续进行,直到出现异常情况为止。有没有办法解决这个问题,例如关闭方面内的建议机制?
谢谢,这正是我正在寻找的。 –