Soy bastante nuevo en AspectJ y tengo un problema que a pesar de algunas investigaciones que no puedo solucionar. Tengo el siguiente aspecto con respecto a un banco, el aspecto verifica si el saldo del Banco se mantiene después de cada invocación de método público.Recursion usando 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;
}
El problema es que en el aspecto utilizo el método bank.getTotalBalance(), que es en sí mismo un método banco público. Por lo tanto, el aspecto se recomienda siempre y este problema de recursión continúa hasta que se produce una excepción. ¿Hay alguna manera de solucionar esto, por ejemplo, desactivando el mecanismo de asesoramiento dentro del aspecto?
Gracias, esto es exactamente lo que estaba buscando. –