首页 > 其他 > 详细

动态代理

时间:2021-06-24 22:28:45      阅读:15      评论:0      收藏:0      [点我收藏+]

1 什么是动态代理

所谓 动态代理, 就是不修改代码的情况下,对实现的功能进行增强.该思想在AOP编程中应用广泛.我的理解是 在内存中 直接修改了 字节码文件,属于动态插入,一次性使用.[待考证].

2 动态代理小案例

  public static void main(String[] args) {
        Student stu=new Student();
        Person person =(Person) Proxy.newProxyInstance(stu.getClass().getClassLoader(), new Class[]{Person.class}, new InvocationHandler() {
            @Override
            public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                if (method.getName().equals("study")) {
                    //动态增强我们的方法
                    System.out.println("学习加强....");
                    return null;
                } else {
                    //其他方法放行
                    return method.invoke(stu, args);
                }
            }
        });

        person.study();
    }

运行结果:
技术分享图片

动态代理

原文:https://www.cnblogs.com/mtyJavaRecord/p/14928236.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!