Sono abbastanza nuovo per AspectJ e ho un problema che mi ispira se qualche ricerca non riesco a risolvere. Ho il seguente aspetto riguardante una Banca, l'aspetto controlla se il saldo della Banca è valido dopo ogni chiamata al metodo pubblico.Ricorsione con 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;
}
Il problema è che sotto l'aspetto io uso il metodo bank.getTotalBalance(), che è di per sé un metodo banca pubblica. Pertanto l'aspetto è consigliato ogni volta e questo problema di ricorsività continua fino a quando non viene lanciata un'eccezione. C'è un modo per risolvere questo problema, ad esempio disattivando il meccanismo di avviso all'interno dell'aspetto?
Grazie, questo è esattamente quello che stavo cercando. –