面向切面编程AOP

Android面向切面编程(AOP)

Android面向切面编程AOP详解

深入理解Android之AOP

切点表达式的组成如下:

execution(<@注解类型>? <修饰符>? <返回类型> <方法名>(<参数>) <异常>?)

除了返回类型、方法名和参数外,其它项都是可选的。

修饰符指的是public、private、protected,异常指的是NullPointException等。

通配符

@AspectJ 支持 3 种通配符:

  • * :匹配任意字符,但它只能匹配上下文中的一个元素
  • .. :匹配任意字符,可以匹配上下文中的多个元素,但在表示类时,必须和 * 联合使用,而在表示入参时则单独使用
  • + :表示按类型匹配指定类的所有类,必须跟在类名后面,如 com.lake.Car+。继承或扩展指定类的所有类,同时还包括指定类本身

@AspectJ 函数按其是否支持通配符及支持的程度,分为 3 类:

  • 支持所有通配符:execution(), within()
  • 仅支持 + 通配符:args(), this(), target()
  • 不支持通配符:@args(), @within(), @target(), @annotation()
 
原文地址:https://www.cnblogs.com/wytiger/p/11640667.html