如何优化切入点表达式以提升搜索效果?
- 内容介绍
- 文章标签
- 相关推荐
本文共计466个文字,预计阅读时间需要2分钟。
按类匹配和按方法匹配详解:
1. 按类匹配: 将匹配到的Java类中所有方法作为目标连接点,使用`within`关键字。
例如,匹配到`com.jnvc.ssm.aop.Singer`类中的所有方法: java pointcut singerPnt: within(com.jnvc.ssm.aop.Singer)
按类匹配和按方法匹配详解1.按类匹配:匹配到的Java类中全部方法作为目标连接点,使用within关键字。
- 匹配到某个类
<aop:pointcut expression="within(com.jnvc.ssm.aop.Singer)" id="singerPnt"/> - 匹配到当前包下的所有类
<aop:pointcut expression="within(com.jnvc.ssm.aop.*)" id="singerPnt"/> - 匹配到包下及子包下的类
<aop:pointcut expression="within(com.jnvc.ssm..*)" id="singerPnt"/>
2.按方法匹配:匹配到的方法作为目标连接点,使用execution关键字。
语法格式如下:
execution([权限修饰符] 返回值类型 [类名] 方法名([参数类型列表]))
说明:[]括起来表示可以省略的部分,各部分都支持使用通配符 “*” 来匹配全部
参数类型列表支持以下两种通配符:
- "*" :代表一个任意类型的参数;
- "..":代表零个或多个任意类型的参数。
点击查看代码
<aop:pointcut expression="execution(String com.jnvc.ssm.aop.Singer.song(String,String))" id="singerPnt"/>
- 任意返回类型
execution(* com.jnvc.ssm.aop.Singer.song(String)) - 任意返回类型下指定包下任意类
execution(* com.jnvc.ssm.aop.*.song(String)) - 任意返回类型下指定包下任意类任意方法
execution(* com.jnvc.ssm.aop.*.*(String)) - 任意返回类型下指定包或子包下任意类任意方法任意参数
execution(* test..*.*(..))
本文共计466个文字,预计阅读时间需要2分钟。
按类匹配和按方法匹配详解:
1. 按类匹配: 将匹配到的Java类中所有方法作为目标连接点,使用`within`关键字。
例如,匹配到`com.jnvc.ssm.aop.Singer`类中的所有方法: java pointcut singerPnt: within(com.jnvc.ssm.aop.Singer)
按类匹配和按方法匹配详解1.按类匹配:匹配到的Java类中全部方法作为目标连接点,使用within关键字。
- 匹配到某个类
<aop:pointcut expression="within(com.jnvc.ssm.aop.Singer)" id="singerPnt"/> - 匹配到当前包下的所有类
<aop:pointcut expression="within(com.jnvc.ssm.aop.*)" id="singerPnt"/> - 匹配到包下及子包下的类
<aop:pointcut expression="within(com.jnvc.ssm..*)" id="singerPnt"/>
2.按方法匹配:匹配到的方法作为目标连接点,使用execution关键字。
语法格式如下:
execution([权限修饰符] 返回值类型 [类名] 方法名([参数类型列表]))
说明:[]括起来表示可以省略的部分,各部分都支持使用通配符 “*” 来匹配全部
参数类型列表支持以下两种通配符:
- "*" :代表一个任意类型的参数;
- "..":代表零个或多个任意类型的参数。
点击查看代码
<aop:pointcut expression="execution(String com.jnvc.ssm.aop.Singer.song(String,String))" id="singerPnt"/>
- 任意返回类型
execution(* com.jnvc.ssm.aop.Singer.song(String)) - 任意返回类型下指定包下任意类
execution(* com.jnvc.ssm.aop.*.song(String)) - 任意返回类型下指定包下任意类任意方法
execution(* com.jnvc.ssm.aop.*.*(String)) - 任意返回类型下指定包或子包下任意类任意方法任意参数
execution(* test..*.*(..))

