2010-12-06 25 views
1

考慮我寫的AOP切入點,並在其中提出一個錯字:檢查建議是否適用

@Pointcut("within(com.example.servic..*)") 
public void serviceMethod() {} 

有「SERVIC」,而不是「服務」。

我打算使用此切入點在服務方法調用之前應用安全檢查。 由於印刷錯誤,安全檢查將不會被應用,但也不會有錯誤信息。

例如,在重構過程中似乎很容易犯這樣的錯誤。

問題是:你如何檢查建議是否真的應用於你的項目?

在此先感謝!

回答

1

完美的單元測試的候選人。

+1

你的意思是我應該做一些測試類的com.example.service包和編寫支持AOP來測試,如果這個類的方法都被一個單元測試有建議嗎? – 2010-12-06 16:00:50

1

最優雅的解決方案是使用一個好的IDE。

如果您使用的是Eclipse,請安裝AJDT plugin,並且您會在Spring AOP/AspectJ建議所匹配的所有行的左側看到一個橙色箭頭,並且所有建議都有關於它在代碼中有多少匹配的信息。

AJDT這樣的插件的另一個優點是每次Eclipse編譯一個類時它都會自動爲您編織。

與AJDT插件激活一個例子: alt text http://files.espenberntsen.net/stackoverflow/annotated-parameter-pointcut.png