1.代理模式
每个模式的出现必然是有它出现的原因,一个简单的比喻,我们要买电脑,不可能直接出厂电脑的地方去买,而是找一家代理商去买,为什么要找他呢?因为方便和代价比较低
在我们写玩完一个项目时,我们发现需要在很多方法中添加日志或者其它功能时,我们怎么去做呢?首先我们要想的不是去每个方法里面修改源代码,那样风险系数太高,也太麻烦,这时候我们又想出别的方法,代理
1.1静态代理
在项目中,有个用户模块,在dao层有它的crud方法,
这个时候我们需要得到这个dao层的每个方法的执行时间,我们可以写一个静态的代理类
然后把代理对象注入到service层就行
1.2jdk动态代理
静态代理虽然可以完成相应的功能,但是我们可以发现静态代理的工作量相当大
我们可以看到这个动态代理可以动态的在jvm中生成字节码文件,并且耦合性比较低,既可以代理用户模块,还可以代理商品模块
代码链接
https://github.com/OMGye/aop/