动态代理(JDK实现)

Posted 如若千夫所指

tags:

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

 

JDK动态代理,针对目标对象接口进行代理 ,动态生成接口的实现类 !(必须有接口)

 

public class ProxyDemo {

    //通过方法的返回值得到代理对象            方法参数是要增强的对象
    public Object getProxyObject(final Object target) {
        
        Object proxyObj = Proxy.newProxyInstance(   //调用Proxy类中的静态方法,创建代理对象
                target.getClass().getClassLoader(),  //参数1:目标对象的类加载器
                target.getClass().getInterfaces(),   //参数2:目标对象实现的接口
                new InvocationHandler() {            //匿名内部类的方式,回调方法,增强对象
                    
                    @Override  //在该方法中写逻辑代码,增强方法
                    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                        System.out.println("前置增强");
                        Object result = method.invoke(target, args);
                        System.out.println("后置增强");
                        return result;
                    }
                });
        return proxyObj;
    }
}

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

JDK 动态代理(原理 + 代码实现)

性能优于JDK代理,CGLib如何实现动态代理

代理模式-3(手写实现JDK动态代理)

代理模式-3(手写实现JDK动态代理)

Spring AOP动态代理实现,解决Spring Boot中无法正常启用JDK动态代理的问题

jdk动态代理和cglib动态代理底层实现原理超详细解析(jdk动态代理篇)