如果有多个切面类,切这个目标类。
切面类 1 日志记录的通知方法。
切面类 2 验证的通知方法。

多切面类/AOP使用场景
目标方法运行到了一个位置,普通通知才开始执行,不影响目标方法的执行。
环绕通知直接执行了目标方法。

步骤:
1.把切面类加入到ioc容器中。加个@Compnent标签
2.告诉Spring,这是一个切面类。加个@Aspect标签
多切面类/AOP使用场景
3.配置通知方法何时何地运行,比如加@Before。
4.告诉Spring,哪个目标方法,写切入点表达式。
多切面类/AOP使用场景
5.切入点表达式引用
之前抽取了可重用切入点表达式的空方法(复制全类名)
多切面类/AOP使用场景
多切面类/AOP使用场景
6.returning=result,throwing=exception

7.有两个切面类,谁先切目标方法?
多切面类/AOP使用场景
先切的,后出去。

可以使用order标签,更改切顺序。

AOP使用场景。
1.AOP加日志,保存到数据库
2.AOP做权限验证。
3.AOP做事务控制。

AOP怎么做事务控制。
前置通知:获取连接,设置为非自动提交
返回通知:提交commit
异常通知:回滚rollback
后置通知:关闭资源

基于注解的AOP
多切面类/AOP使用场景
基于配置的AOP
1.首先也是把切面类和目标类加入到IOC容器中。
用标签
目标类注册一个组件
切面类注册一个组件
多切面类/AOP使用场景
2.告诉Spring哪一个是切面类,我们还需要用到AOP的名称空间。
aop:config标签 aop的配置文件
aop:aspect标签 指定切面类
可以用ref 引用外部的切面类(bean)
多切面类/AOP使用场景
3.通知方法何时何地运行-----五个通知注解/切入点表达式!
多切面类/AOP使用场景
<aop:before method=>前置通知:
pointcut指定切入点表达式 returning返回值 thorwing异常
多切面类/AOP使用场景
多切面类/AOP使用场景
可重用切入点表达式 aop:pointcut标签 声明位置决定别的切面可不可以用。
多切面类/AOP使用场景
引用pointcut-ref

虽然注解模式简单,但是你导入了一个外部的jar包
不是你自己写的,所以你无法在上面加注解。

重要的用配置。
不重要的用注解。

相关文章:

  • 2021-07-16
  • 2022-12-23
  • 2022-02-14
  • 2021-12-10
  • 2021-10-31
  • 2021-10-05
  • 2021-09-02
  • 2021-12-19
猜你喜欢
  • 2021-09-07
  • 2022-12-23
  • 2021-08-02
  • 2021-06-07
  • 2022-12-23
  • 2019-03-13
  • 2022-01-20
相关资源
相似解决方案