Proxy和 invocationHandler和invocation的区别

本文深入探讨了Java中的动态代理机制,重点介绍了Proxy类和InvocationHandler接口的作用。Proxy.newProxyInstance()用于创建代理对象,该对象能够代理接口或实现类的行为。代理对象内部包含被代理的对象和调用处理器(InvocationHandler)。InvocationHandler是处理代理对象方法调用的关键,它保存了代理对象、方法和参数,在invoke方法中可以根据需要进行额外的操作,如调用拦截器的intercept方法。此外,Invocation对象提供了对代理对象信息的完整访问,包括对象、方法和参数,便于进一步的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Proxy是,Proxy.newProxyInstance()创建出来的 代理对象
什么叫代理对象,就是代理以前的接口,或者实现类的对象
这个对象 也是 接口的实现类类型的,所以Proxy 就是接口类型的

proxy的底层到底是什么

	1.他里面主要有两个内容
		1.需要被代理的对象
		2.这个代理对象,需要被传给那个InvocationHandler,或者interceptor
		这种下一步操作的对象
		3.以及根据组件特点,存一些信息,例如拦截器生成的proxy,还保存了当前interceptor,目的就是能够
		  在invoke方法中使用 interceptor的intercept(invocation)方法

2.invocationHandler 翻译为 调用处理程序,意思是proxy在执行的时候,会调用对应的 handler,去处理

3.invocation

	1.invocationhandler是执行具体invoke的地方
	2.invocation可以保存 代理对象和方法和args,这样在invoke方法如果不在此处执行
	例如interceptor中是最后传这个invocation给interceptor的intercept方法去执行
	3.invocation可以保存proxy中的需要被代理的对象,以及他的 method,agrs,invoke调用其他方法后
	还是可以通过invocation获得代理对象的信息,对象,方法,参数,继续执行代理对象的方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值