2012-07-27 97 views
0

可能重複:
Spring AOP vs AspectJSpring AOP的VS Aspecj

我讀春天的參考文件。在這寫它

  1. 如果您需要字段訪問和更新連接點,請考慮一種語言,如AspectJ。
  2. 有些東西你不能用Spring AOP來完成,比如建議很細粒度的對象(比如域對象),AspectJ是使用它的最好的例子。
  3. 什麼是AspectJ編譯器或編織器?

我沒有得到上述三點的含義,因此感到困惑。請用簡單的例子來說明。

回答

2

您的第一點只是簡單地表明您只能在方法級別應用切點,而不能在spring-aop中實施場截獲。

下一點告訴你不能添加域對象意見(這是簡單的POJO實體),

最後是關於編織,編織是各個方面的接線進入方式與Spring的XML文件中的對象JavaBean的。或者簡單地說,編織就是將新的字節碼添加到Java類中,以使其可用於框架。

3

AFAIK Spring AOP不支持AspectJ的所有功能,但只支持有限集合。例如,Spring AOP只支持方法級別的切入點,因此如果您想要細粒度控制(即字段級別),則需要本地使用AspectJ。

0

還有更重要的區別 - AspectJ可以在編譯時注入AOP東西(例如使用aspectj maven pluging),僅在運行時使用cglib或javasist根據spring的版本來注入AOP。不過,一般情況下,您寧願選擇彈簧AOP - 僅僅因爲它更容易...