2010-09-13 46 views

回答

5

動態proxies用於在bean的方法之前/之後執行其他代碼。最簡單的例子就是事務處理:

  • 春天創建一個代理周圍您豆類需要的交易
  • 如果一個方法被聲明transactiona(例如用@Transactional註釋)代理開始一個新的事務,並委託給真正的方法
  • 真正的方法執行和返回
  • 代理現在提交(或回滾)的交易

因此,您的代碼變得事務不可知。當一個事務bean被注入另一個時,它實際上是被注入的代理(它與你的bean的類型相同)

而代理是動態的,因爲spring在編譯時不知道類型所有的bean,所以它必須在運行時創建代理。

+1

很好的答案!這也可能有助於解釋Spring中的代理:http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/aop.html#aop-proxying – earldouglas 2010-09-13 15:30:09

+0

感謝Bozho的快速響應 – Bhabatosh 2010-09-15 06:13:56