簡體   English   中英

Spring - 帶注釋的構造函數對象的AspectJ切入點

[英]Spring - AspectJ pointcut for constructor object with annotation

我正在使用Spring框架(4.0.5)和AspectJ進行AOP Logging開發一個java(JDK1.6)應用程序。

我的Aspect類工作正常,但我無法為構造函數對象創建切入點。

這是我的目標:

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

這是我的Aspect類:

@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");
    }
}

如何為構造函數對象創建切入點?


謝謝

Sotirios Delimanolis是正確的,因為Spring AOP不支持構造函數攔截,你需要完整的AspectJ。 Spring手冊,第9.8將AspectJ與Spring應用程序一起使用,描述了如何將它與LTW(加載時編織)一起使用。

此外,您的切入點存在問題

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

構造函數沒有像AspectJ語法中的方法那樣的返回類型,因此您需要刪除前導*

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM