2011-10-19 20 views
5

Birden çok paket içeren AspectJ @Around yönü için bir desen belirtmek istedim. i kullanılanBirden çok paket belirtmek için Aspectj yönü

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

Desen:

@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 

Ama gibi görünmüyor bir bu desen çalışmak. & koşullu tek bir desen belirtilmesine rağmen, koşul çalışır.

Birisi bu modelde neyin yanlış olduğunu önerebilir mi?

sayesinde
Gayathri

cevap

15

&& mantıksal AND simgeler. Burada ihtiyacınız olan mantıksal bir OR, AspectJ'de ||. eşdeğer satır içi ifadesi Aşağıda

@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() {} 

fazla ayrıntı için bu Spring AOP documentation sayfasına bakın.

İlgili konular