從Spring Documentation:Spring AOP的靶標()與此()
任意連接點(方法執行僅在Spring AOP),其中所述代理 實現了AccountService接口:
this(com.xyz.service.AccountService)
目標 對象實現AccountService接口的任何連接點(僅在Spring AOP中執行方法):
target(com.xyz.service.AccountService)
我不明白什麼是「目標對象」,並表達target(...)
意思。
target
與this
有什麼不一樣?
如果我得到你的權利......既'this'和'target'做同樣的事情???一旦我的代碼試圖執行'AccountService'的某種方法,那麼從接收者的角度來看,'AccountService的這個實例'是真實的;並且從調用者的角度來看,'calledObject instanceof AccountService'也是如此。那麼爲什麼這種冗餘呢? – rapt 2012-08-12 21:27:51
它在AspectJ中很重要,但在Spring AOP中你沒有那麼多 - 因爲'call'(通常與target一起使用)將編織調用者,而'execution'(與此一起)將編織類本身。這很重要,因爲像編譯時編織一樣,您可能無法訪問第三方類來使用執行進行編織,然後可以將調用編織到第三方庫。 – 2012-08-12 21:34:06
謝謝你的解釋。 – rapt 2012-08-13 02:21:38