/**
* 切入点表达式:
* 语法:
* execution(方法全部签名)
* eg:execution(public int com.pan.impl.MathCalculator.*(int, int))
* 意思:MathCalculator的所有方法,而且返回值必须是int,访问权限必须public的这些,参数列表必须是两个整数
*
* eg:execution(public * com.pan.impl.*.*(int,..))
* 意思:任意返回值,任意类的任意方法,但是参数表必第一个参数的类型是int,以后参数类型不限,个数不限
* 可以引入通配符:
* 1)、*:使用位置:可以用在包名、类名、方法名上、返回值
* 2)、..:使用位置:参数位置
* 3)、如果访问权限控制想要匹配多个,直接不写就行。但是必不会支持所有的权限控制,只支持public
*
* 表达式
* 1)、最清楚的:
* execution(public int com.atguigu.impl.MathCalculator.add(int, int))
* 2)、最模糊的
* execution(* *.*(..))
* 3)、好玩的
* 所有以add开头的方法
* execution(public int com.atguigu.impl.MathCalculator.add*(int, int))
*/