AOP原理

概念

AOP:面向切面编程,扩展功能不通过修改源代码实现。
AOP采用横向抽取机制取代了纵向继承体系重复性代码。
在这里插入图片描述
在这里插入图片描述

aop操作的相关术语

在这里插入图片描述
在这里插入图片描述

Spring中AOP的操作

在spring里面进行aop操作,使用aspectJ实现
aspectJ不是spring的一部分,和spring一起使用进行aop操作。

导入相关的jar包,出来导入spring基本的jar包之外还需要导入:

aopalliance.jar、aspectjweaver.jar、spring-aop.jar、 spring-aspects。jar
在这里插入图片描述

导入aop 约束

在这里插入图片描述

使用aspectJ实现aop的两种方式

(1)基于aspectJ的xml配置
使用表达式配置切入点
前置通知(方法之前执行):<aop:before method="" pointcut-ref="">
后置通知(方法之后执行):<aop:after-returning method="" pointcut-ref="">
环绕通知(方法前后都执行):<aop:around method="" pointcut-ref="">
如果用环绕方式,需要在增强的方法中加参数:方法名(ProceedingJoinPoint pro)
在这里插入图片描述
常用表达式:

(1)execution(<访问修饰符>?<返回类型><方法名>(<参数>)<异常>)
     例如:(1)execution(* cn.itcast.aop.Book.add(..))
               *:  任意修饰符(public,private...)
               cn.itcast.aop.Book.add(..):  路径
          (2)execution(* cn.itcast.aop.Book.*(..))
          		Book类中的所有方法增强
          (3)execution(* *.*(..))
          		所有类中的所有方法增强
         (4)execution(* save*(..)) 
         		匹配所有save开头的方法做增强
          
          

步骤:例如有book类和mybook类,book类中有add方法,mybook中有before1方法,book是被增强类,mybook是增强类。
(1)配置类的对象(xml文件中配置,所以不多讲)
(2)配置aop操作(首先引入约束)
在这里插入图片描述(3)测试:
在这里插入图片描述
(2)基于aspectJ的注解方式
在这里插入图片描述
案例:和上面需求一样
(1)导包和引入约束就不写了
(2)创建类
在这里插入图片描述
在这里插入图片描述
(3)配置xml文件
在这里插入图片描述
(4)测试
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值