spring-AOP面向切面编程基础学习

1 什么是AOP?

 AOP是在不改原有代码的前提下对其进行增强。
 
AOP(Aspect Oriented Programming)面向切面编程,一种编程范式,指导开发者如何组织程序结构。
     OOP(Object Oriented Programming)面向对象编程
 

2 AOP作用

作用:在不惊动原始设计的基础上为其进行功能增强,前面咱们有技术就可以实现这样的功能即代理模式。
 

3 AOP核心概念

 (1)前面一直在强调,Spring的AOP是对一个类的方法在不进行任何修改的前提下实现增强。对于上面的案例中BookServiceImpl中有save , update , delete和select方法,这些方法我们给起了一个名字叫连接点

 
(2)在BookServiceImpl的四个方法中,update和delete只有打印没有计算万次执行消耗时间,但是在运行的时候已经有该功能,那也就是说update和delete方法都已经被增强,所以对于需要增强的方法我们给起了一个名字叫切入点。 
 
(3)执行BookServiceImpl的update和delete方法的时候都被添加了一个计算万次执行消耗时间的功能,将这个功能抽取到一个方法中,换句话说就是存放共性功能的方法,我们给起了个名字叫通知
 
(4)通知是要增强的内容,会有多个,切入点是需要被增强的方法,也会有多个,那哪个切入点需要添加哪个通知,就需要提前将它们之间的关系描述清楚,那么对于通知和切入点之间的关系描述,我们
给起了个名字叫切面
 
(5)通知是一个方法,方法不能独立存在需要被写在一个类中,这个类我们也给起了个名字叫通知类 
 
 
总结下:
(1)、连接点(JoinPoint):程序执行过程中的任意位置,粒度为执行方法、抛出异常、设置变量等
        在SpringAOP中,理解为方法的执行。
 
(2)切入点(Pointcut):匹配连接点的式子
       在Spring AOP中,一个切入点可以描述一个具体方法,也可也匹配多个方法 。          
                a 、一个具体的方法:如com.muxue.dao包下的BookDao接口中的无形参无返回值的save方法
               b、匹配多个方法:所有的save方法,所有的get开头的方法,所有以Dao结尾的接口中的任意方法,所有带有一个参数的方法
 
       连接点范围要比切入点范围大,是切入点的方法也一定是连接点,但是是连接点的方法就不一定要被增强,所以可能不是切入点。 
 
  (3) 通知(Advice):在切入点处执行的操作,也就是共性功能
          在SpringAOP中,功能最终以方法的形式呈现
 
 (4)通知类:定义通知的类
 (5) 切面(Aspect):描述通知与切入点的对应关系
 
 

 

 

posted @ 2022-09-12 00:51  沐雪架构师  阅读(26)  评论(0编辑  收藏  举报