静态代理和JDK动态代理
(開發(fā)環(huán)境是MyEclipse)
靜態(tài)代理示例
HellowStaticProxy代理, HellowObject被代理
HellowObject和HellowStaticProxy實(shí)現(xiàn)iHellowProxy接口
(iHellowProxy中聲明被需要被代理的方法)
?
iHellowProxy接口:
?
HellowObject類:
HellowStaticObject類:
?
測(cè)試:
?
?
通過靜態(tài)代理添加日志。
(如果在HellowObject中直接記錄日志,之后需求變動(dòng)時(shí),要回到源碼中修改。HellowObject只需要實(shí)現(xiàn)簡(jiǎn)單的hellow方法,有可能變動(dòng)需求的記錄日志功能和hellow方法分開,開閉原則)
?
JDK動(dòng)態(tài)代理
(基于反射,不需要?jiǎng)?chuàng)建靜態(tài)代理實(shí)現(xiàn)固定接口,靈活性更高)
?
(iHellowProxy接口和HellowObject類不變)
?
DynamicProxy類:
測(cè)試:
?
(在使用log4j記錄日志,記得在BuildPath中把jar包導(dǎo)進(jìn)來,并且在根目錄下放log4j.properties)
(log4j.properties可以修改顯示的Level,示例的rootLogger=info,stdout)
spring的AOP通過動(dòng)態(tài)代理實(shí)現(xiàn)。通過動(dòng)態(tài)代理,可以增強(qiáng)方法,如事務(wù)管理,添加日志等
(小菜鳥的學(xué)習(xí)記錄)
轉(zhuǎn)載于:https://www.cnblogs.com/mySerilBlog/p/8424202.html
總結(jié)
以上是生活随笔為你收集整理的静态代理和JDK动态代理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《大话数据结构》一些基础知识
- 下一篇: jspservlet初体验——用户登录功