java動態代理

一 、動態代理的優點

1.它不用去關心被代理的類到底是怎樣的,可以與被代理的類完全解耦,從而靈活的運用到不同的應用場景中。

2.業務代碼內,當需要增強的業務邏輯非常通用(如:添加log,重試,統一權限判斷等)時,使用動態代理將會非常簡單。即使業務邏輯實現的接口不同,也不需要修改或者新增代理類。如果每個方法增強邏輯不同,那麼靜態代理更加適合。

3.使用靜態代理時,如果代理類和被代理類同時實現了一個接口,當接口方法有變動時,代理類也必須同時修改。


 

二、AOP織入代碼的時機

1,編譯時織入,代表技術:AspectJ

2.類加載時織入,代表技術:Aspect5+

3.運行時織入,代表技術:Spring AOP,運行時織入使用了動態代理

 

三、動態代理的兩種實現方式:

1.jdk動態代理,基於接口

2.cglib動態代理,基於繼承

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章