मैंने वसंत के साथ AspectJ को कॉन्फ़िगर किया है और कक्षा से बाहर बुलाए जाने वाले सार्वजनिक तरीकों को "पकड़ने" के दौरान यह ठीक काम करता है। अब मैं ऐसा कुछ करना चाहता हूं:Aspectj और निजी या आंतरिक तरीकों को पकड़ना
public class SomeLogic(){
public boolean someMethod(boolean test){
if(test){
return innerA();
} else {
return innerB();
}
}
private boolean innerA() {// some logic}
private boolean innerA() {// some other logic}
}
कुछ लॉजिक एक स्प्रिंगबीन है। आंतरिक ए() और आंतरिक बी() को विधियों को निजी या सार्वजनिक घोषित किया जा सकता है - विधि कुछ विधि() को स्ट्रेट्स एक्शन से बुलाया जाता है। क्या AspectJ के तरीकों को आंतरिक ए() या innerB() से कुछ तरीकों से पकड़ना संभव है?
मेरे config (XML आधारित):
<aop:aspect id="innerAAspect" ref="INNER_A">
<aop:pointcut id="innerAService" expression="execution(* some.package.SomeLogic.innerA(..))"/>
</aop:aspect>
<aop:aspect id="innerAAround" ref="INNER_A">
<aop:around pointcut-ref="innerAService" method="proceed"/>
</aop:aspect>
<aop:aspect id="innerBAspect" ref="INNER_B">
<aop:pointcut id="innerBService" expression="execution(* some.package.SomeLogic.innerB(..))"/>
</aop:aspect>
<aop:aspect id="innerBAround" ref="INNER_B">
<aop:around pointcut-ref="innerBService" method="proceed"/>
</aop:aspect>
हमें बताएं कि आपके AspectJ अभिव्यक्तियों के लिए आपके पास क्या है। मुझे पहले सार्वजनिक बनाम निजी के साथ कोई समस्या नहीं थी। –
क्या आप एक उदाहरण पोस्ट कर सकते हैं? – awonline