Spring Aop JDK动态代理实现原理分析(源码)

本文详细解析了Spring AOP中JDK动态代理的实现原理,包括代理对象的生成、InvocationHandler的作用以及代理方法的执行流程,强调了在拦截器链中的MethodInvocation接口及其在实际执行过程中的角色。
摘要由CSDN通过智能技术生成

spring动态代理的方式有两种,本文主要是介绍jdk方式,我们另外一篇主要介绍另外一种方式,也就是cglib方式

1、spring 的aop作用

spring 的aop的动态代理都是为了给实现了接口的类做增强(必须是实现了接口),比如增加日志的功能。

2、本文对你的收获:

我们从这个文章中应该能知道生成的代理对象是什么样的;同时就能知道代理对象对象方法执行流程,

首先我们看下代理后的对象张什么样,其中ConfigInterface是我们需要代理的对象。

//这里删掉了一些不重要的方法。
package com.sun.proxy;
#ConfigInterface 用户自己的接口,需要代理的接口
public final class $Proxy23 extends Proxy implements ConfigInterface, SpringProxy, Advised, DecoratingProxy {
    private static Method m1;
    private static Method m13;
    private static Method m24;
    private static Method m21;
    private static Method m16;
  

    public $Proxy23(InvocationHandler var1) throws  {
        super(var1);
    }

    public final boolean equals(Object var1) throws  {
        try {
            return (Boolean)super.h.invoke(this, m1, new Object[]{var1});
        } catch (RuntimeException | Error var3) {
            throw var3;
        } catch (Throwable var4) {
            throw new UndeclaredThrowableException(var4);
        }
    }


  

    public final void haha() throws  {
        try {
            super.h.invoke(this, m2, (Object[])null);
        } catch (RuntimeException | Error var2) {
            throw var2;
        } catch (Throwable var3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值