首页 > 代码库 > Spring AOP之切入点指示符

Spring AOP之切入点指示符

execution是Spring AOP中最主要的切入点指示符,该切入点的用法相对复杂,execution表达式的格式如下:

execution(modifiers-pattern? ret-type=pattern declaring-type-pattern?name-pattern(param-pattern) throws-pattern?)

上面格式中的execution是不变的,用于作为execution表达式的开头,整个表达式中的解释如下:

  • modifiers-pattern:指定方法的修饰符,支持通配符,该部分可以省略
  • ret-type-pattern:指定方法的返回值类型,支持通配符,可以使用"*"通配符来匹配所有的返回值类型。
  • declaring-type-pattern:指定方法所属的类,支持通配符,该部分可以省略。
  • name-pattern:指定匹配指定的方法名,支持通配符,可以使用"*"通配符来匹配所有方法。
  • param-pattern:指定方法声明中的形参列表,支持两个通配符,即"*"和"..",其中“*”代表一个任意类型的参数,而“..”代表零个或多个任意类型的参数。例如,()匹配一个不接受任何参数的方法,而(..)匹配一个接受任意数量参数的方法,(*)匹配了一个接受一个任何类型的参数的方法,(*,String)匹配了一个接受两个参数的方法,其中第一个参数是任意类型,第二个参数必须是String类型。
  • throws-pattern:指定方法声明抛出的异常,支持通配符,该部分可以省略.

Spring AOP之切入点指示符