1. <aop:config>
    2. <aop:pointcut id="pt" expression="execution(* *..*(..))"/>
    3. <aop:aspect ref="myAdvice">
    4. <aop:before method="before" pointcut-ref="pt"/>
    5. </aop:aspect>
    6. </aop:config>

    • 名称:aop:config
    • 类型:标签
    • 归属:beans标签
    • 作用:设置AOP

      1. <beans>
      2. <aop:config>...</aop:config>
      3. <aop:config>...</aop:config>
      4. </beans>
    • 说明:一个beans标签中科院配置多个aop:config标签


    • 名称:aop:aspect
    • 类型:标签
    • 归属:aop:config标签
    • 作用:设置具体的AOP通知对应的切入点
    • 格式

      1. <aop:aspect>
      2. <aop:aspect ref="beanId">...</aop:aspect>
      3. <aop:aspect ref="beanId">...</aop:aspect>
      4. </aop:aspect>
    • 说明:

      • 一个aop:config标签中可以配置多个aop:aspect标签
    • 基本属性:
      • ref:通知所在的bean的id

    • 名称:aop:pointcut
    • 类型:标签
    • 归属:aop:config标签、aop:aspect标签
    • 作用;设置切入点
    • 格式

      1. <aop:config>
      2. <aop:pointcut id="pointcutId" expression="....">
      3. <aop:aspect>
      4. <aop:pointcut id="pointcutId expression="..."/>
      5. </aop:aspect>
      6. </aop:config>
    • 说明:

      • 一个aop:config标签中可以配置多个aop:pointcut标签,且改标签可以配置在aop:aspect标签内
    • 基本属性:
      • id:识别切入点的名称
      • expression:切入表达式

    切入点

    • 切入点描述的是某个方法
    • 切入点表达式是一个快速匹配方法描述的通配符,类似于正则表达式

    切入点表达式的组成:

    • 切入点描述的是某个方法
    • 切入点表达式是一个快速匹配方法描述的通配格式,类似于正则表达式

    关键字 (访问修饰符 返回值 包名.类名.方法名 (参数) 异常名)

    • 关键字:描述表达式的匹配模式(参看关键字列表)
    • 访问修饰符:方法的控制访问权限修饰符
    • 类名:方法所在的类(此处可以配置接口名称)
    • 异常:方法定义中指定抛出异常

    范例:

    1. execution (public User com.example.service.UserService.findById (int))

    切入点关键字:

    • execution:匹配执行指定方法
    • args:匹配带有指定参数类型的方法
    • within:…..
    • this:…..
    • target:…..
    • @within:…..
    • @target:…..
    • @args:…..
    • @annotation:…..
    • bean:…..
    • reference pointcut:…..