学习aop的底层设计

1.代理模式

每个模式的出现必然是有它出现的原因,一个简单的比喻,我们要买电脑,不可能直接出厂电脑的地方去买,而是找一家代理商去买,为什么要找他呢?因为方便和代价比较低
在我们写玩完一个项目时,我们发现需要在很多方法中添加日志或者其它功能时,我们怎么去做呢?首先我们要想的不是去每个方法里面修改源代码,那样风险系数太高,也太麻烦,这时候我们又想出别的方法,代理

1.1静态代理

在项目中,有个用户模块,在dao层有它的crud方法,

这个时候我们需要得到这个dao层的每个方法的执行时间,我们可以写一个静态的代理类
然后把代理对象注入到service层就行

1.2jdk动态代理

静态代理虽然可以完成相应的功能,但是我们可以发现静态代理的工作量相当大


我们可以看到这个动态代理可以动态的在jvm中生成字节码文件,并且耦合性比较低,既可以代理用户模块,还可以代理商品模块
代码链接
https://github.com/OMGye/aop/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值