Spring aop实现原理连接

收获一:动态代理

动态代理类实现InvocationHandler接口,并重写接口的invoke()方法,如下日志代理类

    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        Object result = null;
        Logger.start();
        result = method.invoke(this.target, args);
        Logger.end();
        return result;
    }

当通过代理类创建具体的实例对象时,该对象调用其某一个方法,将会进入invoke()方法中,invoke()方法有三个参数,Object proxy不太理解用途(待后面补上),Method method被代理实例执行的方法,Object[] args被代理实例执行的方法需要传递的参数。


夜幕轻语
1 声望0 粉丝