2011-10-19 41 views
19

我想要定義一個切入點,它將捕獲每個註釋了(即)@CatchThis的方法。這是我自己的註釋。Spring AOP - 帶註釋的每種方法的切入點

此外,我想訪問該方法的第一個參數,它將是Long類型。也可能有其他的觀點,但我不關心他們。


編輯

這就是我現在所擁有的。我不知道的是如何傳遞用@CatchThis註解的方法的第一個參數。

@Aspect 
public class MyAspect { 
    @Pointcut(value = "execution(public * *(..))") 
    public void anyPublicMethod() { 
    } 

    @Around("anyPublicMethod() && @annotation(catchThis)") 
    public Object logAction(ProceedingJoinPoint pjp, CatchThis catchThis) throws Throwable { 
     return pjp.proceed(); 
    } 
} 
+0

關於使用Spring框架的註解是什麼? –

+0

我已更新我的帖子。 – emesx

回答

22

像這樣的東西應該做的:

@Aspect 
public class MyAspect{ 

    @Pointcut(value="execution(public * *(..))") 
    public void anyPublicMethod() { 
    } 

    @Around("anyPublicMethod() && @annotation(catchThis) && args(.., Long ,..)") 
    public Object logAction(
     ProceedingJoinPoint pjp, CatchThis catchThis, Long long) 
     throws Throwable { 

     return pjp.proceed(); 
    } 
} 
+0

我已更新我的帖子。你可以做你的片段一樣嗎?我會很感激。 – emesx

+0

@elmes確定,更新 –

+0

謝謝。是否有可能,捕捉有一個長參數的方法,這不一定是第一個參數 - 它可以是第一個,第二個或最後一個? – emesx