Top

JDK 的动态代理

①目标类接口

public interface TargetInterface {
    public void method();
}

②目标类

public class Target implements TargetInterface {
    @Override
    public void method() {
        System.out.println("Target running....");
    }
}

③动态代理代码

Target target = new Target(); //创建目标对象//创建代理对象
TargetInterface proxy = (TargetInterface) Proxy.newProxyInstance(target.getClass().getClassLoader(),target.getClass().getInterfaces(),new InvocationHandler() {
    @Override
    public Object invoke(Object proxy, Method method, Object[] args) 
            throws Throwable {
        System.out.println("前置增强代码...");
        Object invoke = method.invoke(target, args);
        System.out.println("后置增强代码...");
        return invoke;
        }
    }
);

④ 调用代理对象的方法测试

// 测试,当调用接口的任何方法时,代理对象的代码都无序修改
proxy.method();

image-20210608220606486

标签: AOP

版权类型: 原创

版权声明: 转载时请注明出处和链接地址

文章链接: https://smallchild.cn/42.html

添加新评论