首页 > 其他 > 详细

AOP

时间:2019-09-29 23:57:51      阅读:187      评论:0      收藏:0      [点我收藏+]

一、概念

AOP面向切面编程,是函数式编程的延申,是对OOP的补充;

代理模式:拦截增强作用,增强功能;

1、java继承,纵向共性抽取,

技术分享图片

 

 2、横向切面AOP织入增强代码方式

技术分享图片

 

 二、原理是通过代理机制,代理模式的意思就是用代理对象增强原来的真实对象的功能,如Filter拦截器;

技术分享图片

 

 其中,Proxy是java自带的一个类;

三、AOP术语

技术分享图片

 四、手动实现AOP编程,用JDK的Proxy代理,AOP只是一种思想

代理:必须要有接口存在,因为创建代理对象时参数列表第二个参数就是接口的实现类对象(真实对象),接口是不能创建对象的;

1、静态工厂类:

技术分享图片

 

 其中,先创建了接口的实现类对象,为真实对象,再创建代理对象来拦截和增强真实对象的方法功能;

技术分享图片

 

 其中,这边的创建代理对象的第三个参数列表是一个匿名内部类,匿名内部类访问外面的静态方法中的局部变量时,要让这变量用final修饰;

代码测试:

技术分享图片

 其中,使用静态工厂创建出代理对象增强真实对象的方法功能;

 

五、使用cglib代理手动实现AOP

技术分享图片

1、代码实现

技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 代码测试:

技术分享图片

 2、细节优化

技术分享图片

 

 proxy代理对象是真实对象的子类;

解耦是和外面的studentService对象没有关系了;

动态代理意思是这个代理对象是程序运行时生成的,代码里看不到这个类和对象存在;

AOP

原文:https://www.cnblogs.com/wmqiang/p/11610227.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!