切入点表达式
主要用于指定哪些组件的方法当作目标,将来切入方面组件的功能。
示例1:匹配所有的public方法
exection(public * *(..))
示例2:匹配所有以set开头的方法
execution(* set*(..))
示例3:匹配DeptService中的save方法
execution(void com.service.DeptService.save(..))
示例4:匹配DeptService中所有方法
execution(* com.service.DeptService.*(..))
示例5:匹配service包下所有类的所有方法
execution(* com.service.*.*(..))
示例6:匹配service包及其子包中所有类的所有方法
execution(* com.service..*.*(..))
示例1:匹配DeptService中所有方法
within(com.service.DeptService)
示例2:匹配service包中的所有类所有方法
within(com.service.*)
示例3:匹配service包及其子包中所有类的所有方法
within(com.service..*)
利用Spring容器中<bean>元素的id或name属性值限定
示例:匹配容器中id或name以Service结尾的Bean对象
bean(*Service)
示例:匹配只有一个参数,参数类型是List的方法
args(java.util.List)
注意:上述表达式可以使用&& ||将多个切入点表达式结合
主要用于指定哪些组件的方法当作目标,将来切入方面组件的功能。
方法限定
execution(修饰符?返回类型 方法名(参数) throws异常?)示例1:匹配所有的public方法
exection(public * *(..))
示例2:匹配所有以set开头的方法
execution(* set*(..))
示例3:匹配DeptService中的save方法
execution(void com.service.DeptService.save(..))
示例4:匹配DeptService中所有方法
execution(* com.service.DeptService.*(..))
示例5:匹配service包下所有类的所有方法
execution(* com.service.*.*(..))
示例6:匹配service包及其子包中所有类的所有方法
execution(* com.service..*.*(..))
类型限定
within(类型)示例1:匹配DeptService中所有方法
within(com.service.DeptService)
示例2:匹配service包中的所有类所有方法
within(com.service.*)
示例3:匹配service包及其子包中所有类的所有方法
within(com.service..*)
Bean名称限定
bean(BeanIdOrBeanName)利用Spring容器中<bean>元素的id或name属性值限定
示例:匹配容器中id或name以Service结尾的Bean对象
bean(*Service)
参数类型限定
args(参数类型)示例:匹配只有一个参数,参数类型是List的方法
args(java.util.List)
注意:上述表达式可以使用&& ||将多个切入点表达式结合