av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

Spring如何基于Proxy及cglib實現(xiàn)動態(tài)代理

瀏覽:32日期:2023-09-01 10:15:01

spring中提供了兩種動態(tài)代理的方式,分別是Java Proxy以及cglib

JavaProxy只能代理接口,而cglib是通過繼承的方式,實現(xiàn)對類的代理

添加一個接口以及對應(yīng)的實現(xiàn)類

public interface HelloInterface { void sayHello();}

public class HelloInterfaceImpl implements HelloInterface { @Override public void sayHello() { System.out.println('hello'); }}

JavaProxy通過實現(xiàn)InvocationHandler實現(xiàn)代理

public class CustomInvocationHandler implements InvocationHandler { private HelloInterface helloInterface; public CustomInvocationHandler(HelloInterface helloInterface) { this.helloInterface = helloInterface; } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println('before hello for proxy'); Object result = method.invoke(helloInterface, args); System.out.println('after hello for proxy'); return result; }}

而cglib實現(xiàn)MethodInterceptor進行方法上的代理

public class CustomMethodInterceptor implements MethodInterceptor { @Override public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable { System.out.println('before hello for cglib'); Object result = methodProxy.invokeSuper(o, objects); System.out.println('after hello for cglib'); return result; }}

分別實現(xiàn)調(diào)用代碼

public static void main(String[] args) { Enhancer enhancer = new Enhancer(); enhancer.setSuperclass(HelloInterfaceImpl.class); enhancer.setCallback(new CustomMethodInterceptor()); HelloInterface target = (HelloInterface) enhancer.create(); target.sayHello(); CustomInvocationHandler invocationHandler = new CustomInvocationHandler(new HelloInterfaceImpl()); HelloInterface target2 = (HelloInterface) Proxy.newProxyInstance(Demo.class.getClassLoader(), new Class[]{HelloInterface.class}, invocationHandler); target2.sayHello(); }

可以看到對于的代理信息輸出

before hello for cglibhelloafter hello for cglibbefore hello for proxyhelloafter hello for proxy

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 国产在线观看网站 | 欧美日韩免费看 | 一区二区视频在线 | 六月激情 | 96精品| 日本在线视频一区 | 免费在线a | 国产三级黄色片 | 国产精品一区二区在线播放 | 青青操国产 | 最新日韩在线 | 亚洲天堂色图 | 日本精品网站 | 国产盗摄一区二区 | 三级网站在线 | 在线观看黄色片 | www.久久久久| 思思在线视频 | 国产高清免费视频 | 中文字幕日韩一区 | 久久精品视 | 国产黄网 | 亚欧av在线 | 国产不卡在线观看 | 国产精品欧美一区二区 | 成人观看视频 | 97精品超碰一区二区三区 | 亚洲成人福利 | 久久精品观看 | 天天干天天弄 | 一区二区三区久久久 | 天天视频国产 | 成人片在线看 | 国产精品久久久久久久久久久久午夜片 | 亚洲a视频 | 五月婷丁香| 精品欧美在线 | 狠狠操狠狠爱 | 日韩黄色免费视频 | 亚洲怡春院 | 人人爽人人澡 |