1.如何匹配方法签名模式
最典型的切入点表达式,用于通过签名匹配多个方法
1.1匹配另一个包中一个类中的所有方法
例如:前面通配符匹配任何修饰符(public、protested和private)和任务返回类型的方法。参数列表中的两个点匹配任意数量的参数。*表示匹配任意字符。
execution(* com.example.demo.component.EmployeeManager.before*(..))
1.2匹配同一包内的类中的所有方法
如果目标类或接口与此方面位于同一包中,组可以省略包名。
execution(* EmployeeManager.*(..))
1.3匹配类中的所有公共方法
execution(public * EmployeeManager.*(..))
1.4匹配所有公共方法与返回类型匹配
使用public关键字和返回类型EmployeeDTO
execution(public EmployeeDTO EmployeeManager.*(..))
1.5将所有公共方法与返回类型
execution(public EmployeeDTO EmployeeManager.*(EmployeeDTO, ..))
2.如何匹配类类型签名模式
当应用于Spring AOP时,这些切入点的范围将缩小到仅匹配特定类型内的所有方法执行。
2.1匹配 com.howtodoinjava 包内的类中定义的所有方法
within(com.howtodoinjava.*)
2.2匹配 com.howtodoinjava 包内的类中定义的所有方法以及所有子包内的类
within(com.howtodoinjava..*)
2.3. 将所有方法与另一个包中的EmployeeManagerImpl类匹配
within(com.howtodoinjava.EmployeeManagerImpl)
2.4. 将所有方法与同一包中的EmployeeManagerImpl类匹配
within(EmployeeManagerImpl)
2.5. 匹配 EmployeeManager 接口的所有实现类中的所有方法
使用 +(加号)来匹配接口的所有实现。
within(EmployeeManagerImpl+)
3.如何匹配类名模式
3.1。匹配名称以“Manager”结尾的 bean 中定义的所有方法。
这很容易。使用 * 匹配 bean 名称中前面的任何内容,然后匹配单词。
4.如何组合切入点表达式
在 AspectJ 中,切入点表达式可以与运算符&& (and)、|| (or)和结合使用! (not)。例如
4.1。匹配名称以 Manager 和 DAO 结尾的所有方法
使用’||'符号来组合这两个表达式。
bean(*Manager) || bean(*DAO)