代理技术和AOP

生活中的代理和程序中的代理


AOP

系统中存在很多交叉业务,何谓交叉业务?交叉业务是贯穿在每个模块的公共部分。

交叉业务图解:


用具体的程序代码描述交叉业务:


交叉业务的编程问题即为面向切面的编程,简称AOP。AOP的目的就是要使交叉业务模块化。可以采用将切面代码移动到原始方法的周围,这与直接在

方法中编写切面代码的运行效果是一样的,如下:


使用代理技术正好可以解决这个问题,代理是实现AOP功能的核心和关键技术。

代理技术的种类

静态代理和动态代理


要为系统中的各种接口的类增加代理功能,那就需要太多的代理类,全部采用静态代理的方式,将是一种灾难。

JVM可以再运行期动态生成出类的字节码,这种动态生成的类往往被用做代理类,即动态代理。


动态代理的实现




InvocationHandler内部原理


动态代理的工作原理图





实现AOP的封装与配置






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值