淺談:代理模式

  • 代理模式應用場景:通過代理默認解決一些與業務無關的問題,特別是在spring中應用場景極為廣泛,如:遠程調用、安全、日誌、事務、資源關閉等。
  • 代理常見分為靜態代理和動態代理。
    靜態代理:事先寫好代理類。每個業務類都需要對應一個代理類,很不靈活;
    動態代理:運行時自動生成代理對象。缺點是生成代理對象和調用代理方法都要額外花費時間;
  • jdk動態代理:基於java反射機制實現,必須實現業務接口才能生成代理對象。新版本結合ASM機制。
  • cglib動態代理:基於ASM機制實現,通過生成業務類的子類作為代理類。
  • java反射機制的場景應用場景:動態代理(AOP/RPC)、提供第三方開發者擴展能力(servlet容器,jdbc連接)、第三方組件創建對象(DI)等。


分享到:


相關文章: