课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的程序员都掌握了不同的编程开发方法,而今天我们就来了解一下,除了面向对象和面向服务以外的面向切面编程都有哪些特点。
什么是AOP
全称: 面向切面编程(Aspect Oriented Programming), 通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。
学习AOP意义
利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。可以在不修改源码的情况下对程序进行增强。
Spring AOP底层实现原理
JDK 的动态代理:针对实现了接口的类产生代理。
Cglib的动态代理:针对没有实现接口的类产生代理,应用的是底层的字节码增强技术,生成当前类的子类对象。
Spring AOP 相关术语
Joinpoint: 连接点,可以被拦截到的点。(可以被增强的方法,称为连接点)
Pointcut: 切入点,真正被拦截到的点。在实际开发中,只对某个方法进行增强,这个方法就是切入点。
Advice: 通知、增强(方法层面的增强)。现在对某个方法进行权限校验,权限校验的方法称为是通知。
Introduction:引介, 类层面的增强,在类里面动态的增加方法和属性。
Target:被增强的对象。
Weaving:织入,将通知Advice应用到目标Target的过程。
Aspect:切面,多个通知和多个切入点的组合。
Spring中通知的类型
前置通知:在目标方法执行之前进行操作。可以获得切入点信息(其他类型的通知也可以获得)
后置通知:在目标方法执行之后进行的操作。可以获得目标方法的返回值。
环绕通知:在目标方法执行之前和之后进行操作。可以阻止目标方法的执行。
异常抛出通知:在程序出现异常的时候进行的操作。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!