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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JDK和cglib动态代理代码示例

發布時間:2025/1/21 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JDK和cglib动态代理代码示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JDK和cglib動態代理代碼:

package com.zhangxueliang.demo.proxy;import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy;public class JDKProxyFactory implements InvocationHandler{private Object target;public JDKProxyFactory(Object target){this.target=target;}public Object createProxy(){ClassLoader classLoader = target.getClass().getClassLoader();Class<?>[] interfaces = target.getClass().getInterfaces();return Proxy.newProxyInstance(classLoader, interfaces, this);}public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println("增強--日志操作。。。。。。。。。。。");return method.invoke(target, args);}} package com.zhangxueliang.demo.proxy;import java.lang.reflect.Method;import org.springframework.cglib.proxy.Enhancer; import org.springframework.cglib.proxy.MethodInterceptor; import org.springframework.cglib.proxy.MethodProxy;public class CglibProxyFactory implements MethodInterceptor {private Object target;public CglibProxyFactory(Object target){this.target=target;}public Object createProxy(){Enhancer enhancer = new Enhancer();enhancer.setSuperclass(target.getClass());enhancer.setCallback(this);return enhancer.create();}public Object intercept(Object proxy, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {System.out.println("cglib日志操作。。。。。。。。");return method.invoke(target,args);} } package com.zhangxueliang.demo.proxy;public class Test {public static void main(String[] args) { // testJdkProxy();UserServiceImpl u = new UserServiceImpl();CglibProxyFactory c = new CglibProxyFactory(u);UserServiceImpl us = (UserServiceImpl) c.createProxy();us.login("0000", "123456");}private static void testJdkProxy() {UserServiceImpl u = new UserServiceImpl();JDKProxyFactory f = new JDKProxyFactory(u);IUserService us = (IUserService) f.createProxy();us.login("1111", "2222");} }

?

總結

以上是生活随笔為你收集整理的JDK和cglib动态代理代码示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。