静态代理和JDK动态代理
(開發環境是MyEclipse)
靜態代理示例
HellowStaticProxy代理, HellowObject被代理
HellowObject和HellowStaticProxy實現iHellowProxy接口
(iHellowProxy中聲明被需要被代理的方法)
?
iHellowProxy接口:
?
HellowObject類:
HellowStaticObject類:
?
測試:
?
?
通過靜態代理添加日志。
(如果在HellowObject中直接記錄日志,之后需求變動時,要回到源碼中修改。HellowObject只需要實現簡單的hellow方法,有可能變動需求的記錄日志功能和hellow方法分開,開閉原則)
?
JDK動態代理
(基于反射,不需要創建靜態代理實現固定接口,靈活性更高)
?
(iHellowProxy接口和HellowObject類不變)
?
DynamicProxy類:
測試:
?
(在使用log4j記錄日志,記得在BuildPath中把jar包導進來,并且在根目錄下放log4j.properties)
(log4j.properties可以修改顯示的Level,示例的rootLogger=info,stdout)
spring的AOP通過動態代理實現。通過動態代理,可以增強方法,如事務管理,添加日志等
(小菜鳥的學習記錄)
轉載于:https://www.cnblogs.com/mySerilBlog/p/8424202.html
總結
以上是生活随笔為你收集整理的静态代理和JDK动态代理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《大话数据结构》一些基础知识
- 下一篇: js 异步操作打开新页面被浏览器拦截的问