日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java中如何实现代理机制(JDK、CGLIB)

發(fā)布時間:2023/12/10 java 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中如何实现代理机制(JDK、CGLIB) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

代理分為兩種:

1.靜態(tài)代理

2.動態(tài)代理

?動態(tài)代理又分為兩種:jdk 實現(xiàn) ?;Cglib 實現(xiàn)

3.Java中如何實現(xiàn)代理機制(JDK、CGLIB)

JDK動態(tài)代理:代理類和目標類實現(xiàn)了共同的接口,用到InvocationHandler接口。
CGLIB動態(tài)代理:代理類是目標類的子類,用到MethodInterceptor接口。

注意:

使用版本:

首先介紹jdk 實現(xiàn)動態(tài)代理:

第一步:建立接口

package com.asiainfo.proxydemo;

public interface BookFacade {
?? ? public void addBook();?
}
第二步:實現(xiàn)接口

package com.asiainfo.proxydemo;

import java.io.Serializable;

public class BookFacadeImpl implements BookFacade, Serializable {
? ??
?? ?public void addBook() {
?? ??? ?// TODO Auto-generated method stub
?? ??? ? ?System.out.println("增加圖書方法。。。"); ?
?? ?}

}
第三步:建立代理類

?? ?package com.asiainfo.proxydemo;
?? ?
?? ?import java.lang.reflect.InvocationHandler;
?? ?import java.lang.reflect.Method;
?? ?import java.lang.reflect.Proxy;
?? ?
?? ?public class BookFacadeProxy implements InvocationHandler {
?? ??? ?
?? ??? ?private Object target;?? ?
?? ??? ?
?? ??? ?public Object bind(Object target){
?? ??? ??? ?this.target=target;
?? ??? ??? ?return Proxy.newProxyInstance(target.getClass().getClassLoader(), (Class<?>[]) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? target.getClass().getGenericInterfaces(), this);
?? ??? ?}
?? ?
?? ??? ?public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
?? ??? ??? ?// TODO Auto-generated method stub
?? ??? ??? ?Object result=null;
?? ??? ??? ?System.out.println("事物開始執(zhí)行");
?? ??? ??? ?method.invoke(target, args);
?? ??? ??? ?System.out.println("事情結(jié)束");
?? ??? ??? ?return null;
?? ??? ?}
? ? ? ? //代碼測試
?? ??? ?public static void main(String[] args) {
?? ??? ??? ?BookFacade target = new BookFacadeImpl();
?? ??? ??? ?BookFacade bookFacadeProxy = (BookFacade) new BookFacadeProxy().bind(target);
?? ??? ??? ?bookFacadeProxy.addBook();
?? ??? ??? ?
?? ??? ??
?? ??? ?}
?? ?
?? ?}
其次是Cglib 實現(xiàn):

第一步:

package com.asiainfo.proxydemo;

public class BookFacadeCglib {
?? ? public void addBook(){
?? ??? ? System.out.println("addBook");
?? ? }
}
第二步:cglib 建立測試類

package com.asiainfo.proxydemo;

import java.lang.reflect.Method;

import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;

public class BookFacadeProxyCglib implements MethodInterceptor {
?? ?private Object target;
?? ?
?? ?public Object getInstance(Object target){
?? ??? ?this.target=target;
?? ??? ?Enhancer enhancer=new Enhancer();
?? ??? ?enhancer.setSuperclass(this.target.getClass());
?? ??? ?//回調(diào)方法
?? ??? ?//enhancer.setCallbackType(this.target.getClass());
?? ??? ?enhancer.setCallback(this);
?? ??? ?//創(chuàng)建代理對象
?? ??? ?return enhancer.create();
?? ?}

?? ?public ? Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {
?? ??? ?// TODO Auto-generated method stub
?? ??? ?System.out.println("before run");
?? ??? ?Object returnvalue=proxy.invokeSuper(obj, args);
?? ??? ?System.out.println("after run");
?? ??? ?return null;
?? ?}

? ?//cglib代碼測試?
?? ?public static void main(String[] args) {
?? ??? ? BookFacadeCglib target = new BookFacadeCglib();
?? ??? ? BookFacadeCglib bookFacadeCglib = (BookFacadeCglib) new BookFacadeProxyCglib().getInstance(target);
?? ??? ? bookFacadeCglib.addBook();

?? ?}

}
參考:http://lrd.ele.me/2017/01/09/dynamic_proxy/

? ? ? ?:https://blog.csdn.net/einstein10147/article/details/77040110

總結(jié)

以上是生活随笔為你收集整理的Java中如何实现代理机制(JDK、CGLIB)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲国产v| 奇米网在线观看 | 91免费视频入口 | 男人桶进美女尿囗 | 久久精品一区二区在线观看 | 999在线观看视频 | 色窝av| www国产精品 | 欧美成人吸奶水做爰 | 男女做爰猛烈吃奶啪啪喷水网站 | 精品成人久久久 | 国内免费精品视频 | 国产av无码国产av毛片 | 日本三级免费看 | 国产精品国产精品国产专区 | 特级丰满少妇一级aaaa爱毛片 | 黄色av软件 | 黄色录像一级大片 | 国产视频一区二区三区在线播放 | 国产精品秘入口18禁麻豆免会员 | 日韩精品视频免费看 | 国产精品久久久久久久毛片 | 国产午夜精品免费一区二区三区视频 | 人人澡人人澡人人澡 | 爱爱的免费视频 | 一级全黄裸体片 | 国产91在线播放九色 | 日本精品一区二区三区四区 | 97国产精品人人爽人人做 | 中文字幕资源网 | 国产一级在线观看 | 国产精品99久久久久久宅男 | 91在线视频导航 | 古代黄色片 | www.xxxx国产| 五月亚洲| 日韩精品中文字幕在线 | 精品人妻少妇一区二区 | 131美女爱做视频 | 浪潮av一区二区三区 | 中文字幕国产剧情 | 日韩精品在线一区二区 | 中国爆后菊女人的视频 | 综合久久伊人 | 147人体做爰大胆图片成人 | 隣の若妻さん波多野结衣 | 欧美日韩视频在线观看一区 | 欧美激情精品久久久久久 | 在线精品自拍 | 日韩一区二区三区四区 | 嫩草嫩草嫩草嫩草嫩草嫩草 | 精品黑人一区二区三区在线观看 | 久久久久久久蜜桃 | 人人草人人看 | 人人爽爽爽| 成人区人妻精品一区二区不卡视频 | 7799精品视频天天看 | 日本护士╳╳╳hd少妇 | 国产女主播一区 | 久久久久亚洲av成人网人人网站 | 五月婷视频 | 日韩在线观看av | 欧美日韩激情一区二区 | 99嫩草| 欧美爱爱免费视频 | 精品福利片 | 亚洲女人天堂 | 久热这里只有精品在线 | 欧美一区二区免费视频 | 18禁男女爽爽爽午夜网站免费 | 亚洲区一区二区三区 | 成人99视频 | 日本午夜精品 | 免费观看日批视频 | 日本高清视频一区 | 天天操天天操天天射 | 亚洲精品国产精品乱码视色 | 免费一级片| 三级少妇 | 亚洲午夜国产 | 久草福利资源 | 国产中文字幕三区 | 国产成人精品无码高潮 | 久久久久久久人妻无码中文字幕爆 | 中文字幕8 | 亚洲免费观看高清完整版在线 | 夫の上司に犯波多野结衣853 | 国产啊啊啊啊 | 午夜aaa| 日韩在线视频免费看 | 欧美亚洲大片 | 91精品国产视频 | 久热青草 | 欧美精品乱人伦久久久久久 | 欧美成人国产 | 国产特级视频 | 蜜桃成人网 | 国产精品一区二区三区四区在线观看 | 天天射日日 |