AOP中的通配符*和..的区别与应用
在AOP(面向切面编程)中,'*'和'..'是用来匹配切点表达式中的方法或类的通配符。
-
'': 表示匹配任意字符,可以用于匹配方法名或类名的一部分。例如,execution( com.example.service.Service.(..)) 表示匹配com.example.service包下以Service结尾的类的任意方法。
-
'..': 表示匹配任意字符或路径,可以用于匹配多级的包或类。例如,execution(* com.example..Service.(..)) 表示匹配com.example包及其子包下以Service结尾的类的任意方法。
区别:
- '*'只能匹配单个字符或一部分,而'..'可以匹配多个字符或路径。
- '*'只能匹配一个层级,而'..'可以匹配多个层级。
- '*'适用于匹配方法名或类名的一部分,'..'适用于匹配包名或类路径的一部分。
- ''和'..'可以组合使用,以实现更精确的匹配条件。例如,execution( com.example..Service.get(..)) 表示匹配com.example包及其子包下以Service结尾的类的以get开头的任意方法。
原文地址: https://www.cveoy.top/t/topic/oWhk 著作权归作者所有。请勿转载和采集!