JDK动态代理

Posted houj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDK动态代理相关的知识,希望对你有一定的参考价值。

JDK动态代理又忘了,已经学习第四遍了,最简单的实现如下。

package com.houjun.JDKDynamicProxy;

/**
 * @Author: HouJun
 * @Date: 2019/10/10 9:11
 * @Description: 接口
 * @version: 1.0
 */
public interface Subject {
    void doSomething();
}
package com.houjun.JDKDynamicProxy;

/**
 * @Author: HouJun
 * @Date: 2019/10/10 9:11
 * @Description: 被代理类
 * @version: 1.0
 */
public class ImplSubject implements Subject{
    @Override
    public void doSomething() {
        System.out.println("被代理类执行了");
    }
}
package com.houjun.JDKDynamicProxy;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

/**
 * @Author: HouJun
 * @Date: 2019/10/10 9:13
 * @Description: com.houjun.JDKDynamicProxy
 * @version: 1.0
 */
public class Test {
    public static void main(String[] args) {
        ImplSubject implSubject = new ImplSubject();

        Subject s = (Subject) Proxy.newProxyInstance(implSubject.getClass().getClassLoader(), implSubject.getClass().getInterfaces(), new InvocationHandler() {
            @Override
            public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                System.out.println("");
                Object invoke = method.invoke(implSubject, args);
                System.out.println("");
                return invoke;
            }
        });
        s.doSomething();
    }
}

 

以上是关于JDK动态代理的主要内容,如果未能解决你的问题,请参考以下文章

JDK动态代理CGLIB动态代理

JDK动态代理CGLIB动态代理

(java反射-JDK动态代理)+CGLIB动态代理

JDK动态代理与Cglib动态代理

JDK动态代理与CGLib动态代理

代理模式(静态代理jdk动态代理CGLib动态代理)