zoukankan      html  css  js  c++  java
  • Spring 笔记(四)AOP

    前言

    横切关注点

    使用 @AspectJ 定义切面。
    同时还需要在配置类上应用 @EnableAspectJAutoProxy 注解,启用 AOP 自动代理。(不添加它的话,@AspectJ 注解的类只会被当作普通 Bean)

    定义切点

    使用 @Pointcut 定义切点,其参数为切点表达式,切点表达式由以下三大部分组成:

    通配符

    1. *:匹配任意非空白字符
    2. ..:匹配任意数量的子包或者参数。
    3. +:匹配指定类及其子类。(感觉一般是用在表达式末尾)

    运算符

    与或非

    指示器 (designators)

    重点是 exectution,其他的可以用的时候再查

    添加通知 (Advice)

    环绕通知的 ProceedingJoinPoint 参数

    环绕通知方法必须有一个 ProceedingJoinPoint 参数,并且要在前置通知完成后,调用该对象的 proceed() 方法,该方法会将控制权返回给切点方法。切点方法执行完毕后,会继续执行 proceed() 方法后的代码。
    proceed() 方法就相当于前置通知和后置通知的分界点。

    环绕通知的代码,通常都会写在一个 try-catch 块里,如果运行抛出异常,catch 块的内容即相当于 AfterThrowing 通知。

    处理通知中的参数

    从命令切点到通知方法的参数转移:args 指示器

    代理

    待续

    参考

  • 相关阅读:
    Cookie、Session和自定义分页
    ORM版学员管理系统 2
    ORM版学员管理系统 3
    ORM版学员管理系统
    Django之ORM
    Django模板语言相关内容
    Django之视图
    MySQL表单查询
    模块和包—Day28
    MySQL windows下cmd安装操作
  • 原文地址:https://www.cnblogs.com/kirito-c/p/9202178.html
Copyright © 2011-2022 走看看