का उपयोग कर रिकर्सन मैं एस्पेक्टजे के लिए काफी नया हूं और एक समस्या है जिसके बावजूद कुछ शोध मैं ठीक करने में सक्षम नहीं हूं। मेरे पास बैंक से संबंधित निम्नलिखित पहलू है, पहलू यह जांचता है कि बैंक की शेष राशि प्रत्येक सार्वजनिक विधि के आमंत्रण के बाद रखती है या नहीं।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() जो अपने आप में एक सार्वजनिक बैंक तरीका है का उपयोग करें। इसलिए हर बार पहलू की सलाह दी जाती है और जब तक अपवाद नहीं होता है तब तक यह रिकर्सन समस्या चलती रहती है। क्या इसे ठीक करने का कोई तरीका है, उदाहरण के लिए पहलू के अंदर सलाह तंत्र को बंद कर?
धन्यवाद, यह वही है जो मैं ढूंढ रहा था। –