2014-12-17 21 views
5

Spring framework (4.0.5) ve AOP Logging için AspectJ ile bir java (JDK1.6) uygulaması geliştiriyorum.Spring - Açıklama nesnesine sahip AspectJ pointcut

My Aspect sınıflarım iyi çalışıyor ancak kurucu nesnesi için bir pointcut oluşturamıyorum.

Bu benim nesnedir:

@Controller 
public class ApplicationController { 
    public ApplicationController(String myString, MyObject myObject) { 
     ... 
    } 
    ... 
    .. 
    . 
} 

Bu benim Aspect sınıftır:

@Aspect 
@Component 
public class CommonLogAspect implements ILogAspect { 
    Logger log = Logger.getLogger(CommonLogAspect.class); 

    // @Before("execution(my.package.Class.new(..))) 
    @Before("execution(* *.new(..))") 
    public void constructorAnnotatedWithInject() { 
     log.info("CONSTRUCTOR"); 
    } 
} 

nasıl yapıcı nesne için bir pointcut oluşturabilirim?

+0

:

Ayrıca, * lider kaldırmak gerekir böylece Kurucularını AspectJ'yi sözdiziminde yöntemlerle gibi dönüş türü yok

@Before("execution(* *.new(..))") 

sizin pointcut ile ilgili bir sorun var '' '' '' '' '' '' '' '' '' '' Soru yazarken onları özlemişimdir. – PapaSmurf

+0

Ben saf AOP'da kurucu çağrısını engelleyebileceğine inanmıyorum –

+0

@SotiriosDelimanolis Kurucu aramayı nasıl engelleyebilirim? – PapaSmurf

cevap

9

Sotirios Delimanolis sağ ölçüde Bahar AOP yapıcı durdurma desteklemediği gibidir


sayesinde, bunun için tam AspectJ gerekiyor. Yay kılavuzu, bölüm 9.8 Using AspectJ with Spring applications, LTW (yükleme süresi dokuma) ile nasıl kullanılacağını açıklar. @kocko

@Before("execution(*.new(..))") 
+0

Tam olarak ihtiyacım olan şey buydu - Yapıcı aramalarının yukarıdaki gibi bir ifade ile alınacağını varsaydım. – JoshC13