2011-10-19 2 views
5

मैं पहलू @ आसपास के पहलू के लिए एक पैटर्न निर्दिष्ट करना चाहता था जिसमें एकाधिक पैकेज शामिल हैं।एकाधिक पैकेज निर्दिष्ट करने के लिए Aspectj पहलू

Example : package 1 : aaa.bbb.ccc.ddd 
      package 2 : aaa.bbb.ccc.eee 
      package 3 : aaa.bbb.ccc.eee.fff 

पैटर्न जो मैं प्रयोग किया है:

@Around("execution(* aaa.bbb.ccc.ddd.*.*(..)) && execution(* aaa.bbb.ccc.eee..*.*(..))") 
    i.e Intercept packages aaa.bbb.ccc.ddd, aaa.bbb.ccc.eee and any sub-package of aaa.bbb.ccc.eee 

लेकिन इस पद्धति नहीं करता है लगता है काम करने के लिए। हालांकि & & स्थिति के बिना एकल पैटर्न निर्दिष्ट करना।

क्या कोई सुझाव दे सकता है कि इस पैटर्न के साथ क्या गलत है?

धन्यवाद,
गायत्री

उत्तर

15

&& तार्किक AND के लिए खड़ा है। आपको यहां एक तार्किक OR है, जो AspectJ में || है।

@Pointcut("execution(* aaa.bbb.ccc.ddd.*.*(..))") 
public void methodInDddPackage() {} 

@Pointcut("execution(* aaa.bbb.ccc.eee.*.*(..))") 
public void methodInEeePackage() {} 

@Pointcut("methodInDddPackage() || methodInEeePackage()") 
public void methodInDddOrEeePackage() {} 

बराबर इनलाइन अभिव्यक्ति नीचे:

@Pointcut("execution(* aaa.bbb.ccc.ddd.*.*(..)) || execution(* aaa.bbb.ccc.eee.*.*(..))") 
public void methodInDddOrEeePackageInline() {} 

अधिक जानकारी के लिए इस Spring AOP documentation पेज देखें।