阅读jdk动态代理底层源码简单模仿实现的动态代理

阅读jdk动态代理底层源码简单模仿实现的动态代理,最大的收获是明白了如何去阅读源码

代码码云地址
在这里插入图片描述

public class Test {
   
    public static void main(String[] args) throws Throwable {
   


        /**
         * 动态代理:原映雪模仿的动态代理
         */
        TestDao proxy = (TestDao) ProxyUtil.newInstance(new TestDaoImpl(), new TestInvocationHandler(new TestDaoImpl()));
        proxy.query();

        /**
         * 动态代理:基于jdk的动态代理
         */
        TestDao jdkproxytest1 = (TestDao) Proxy.newProxyInstance(Test.class.getClassLoader(),
                new Class[] {
   TestDao.class},new TestInvocationHandlerOne(new TestDaoImpl()));

        jdkproxytest1.query();
    }
}

先写出模板,在按模板和jdk源码的思维来模拟动态代理

public class $Proxy implements TestDao {
   
	private ProxyInvocationHandler target;
	public $Proxy (ProxyInvocationHandler target){
   
		this.target =target;
	}
	@Override
	public void query()  {
   
		Method method = null;
		try {
   
			method = Class.forName("com.yyx.dao.TestDao").getDeclaredMethod("query");
			target.invoke(method);
		} catch (Exception e) {
   
			e.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值