动态代理

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();
    }

运行结果:
动态代理

动态代理

上一篇:JVM 常用监控工具


下一篇:字符串的各种方法