之所以想写点这个话题,是因为看到以下这段代码,当然下面的代码比较容易理解,但是我想记录execution表达式是怎么写的,因为自己分不清
目前写的就是execution(* *.transferAmmount(..))
第一个*号:表示返回类型,*号表示所有的类型
包名:表示需要拦截的包名,两个句点表示当前包和当前包的所有子包
transferAmmount:表示方法名
(..):后面括弧里面表示方法的参数,两个句点表示任何参数
当然我们可以看看其他的使用方式
这里前面是包名,后面 .. 表示子包和子类,其他的没有改变,我觉得比较通用的还是以下的吧,不要指定方法名,指定某一层的包下的
这里如果你将LoggingAspect这个切面类,包含在那个表达式范围内,就会出现初始化异常,比如使用如下的:
这里好像说的是循环引用吧,然后就启动不了了!
未完待续!