Spring与AOP的顾问(Advisor)详解

12 篇文章 0 订阅

顾问(Advisor)是 Spring 提供的另一种切面。其可以完成更为复杂的切面织入功能。PointcutAdvisor 是顾问的一种, 可以指定具体的切入点。 顾问将通知进行了包装,会根据不同的通知类型,在不同的时间点,将切面织入到不同的切入点。PointcutAdvisor 接口有两个较为常用的实现类:

  • NameMatchMethodPointcutAdvisor 名称匹配方法切入点顾问
  • RegexpMethodPointcutAdvisor 正则表达式匹配方法切入点顾问

名称匹配方法切入点顾问

NameMatchMethodPointcutAdvisor,即名称匹配方法切入点顾问。容器可根据配置文件中指定的方法名来设置切入点。

(1) 修改配置文件

<!-- 指定切入点:这里匹配的对象是简单方法名 -->
    	<!-- 指定doFirst方法为切入点方法 -->
    	<!-- <property name="mappedName" value="doFirst"/> -->
    	<!-- 指定doFirst、doSecond方法为切入点方法 -->
    	<!-- <property name="mappedNames" value="doFirst,doSecond"/> -->
    	<!-- 指定自定义匹配*ir*方法为切入点方法 -->
    	<property name="mappedNames" value="*ir*"/>

正则表达式方法切入点顾问

RegexpMethodPointcutAdvisor,即正则表达式方法顾问。容器可根据正则表达式来设置切入点。注意,与正则表达式进行匹配的对象是接口中的方法名,而非目标类(接口的实现类)的方法名。

(1) 修改配置文件

   	<!-- 这里的正则表达式匹配的对象是全限定性方法名 -->
    	<!-- <property name="pattern" value=".*doFirst"/> -->
    	<!-- <property name="patterns" value=".*doFirst,.*doSecond"/> -->
    	<!-- 包含doS的或doT的方法为切入点方法 -->
    	<!-- <property name="pattern" value=".*doFirst|.*doSecond"/> -->
    	<property name="pattern" value=".*S.*"/>

正则表达式常用的运算符有三个,如下表:

运算符名称意义
.点号表示任意单个字符
+加号表示前一个字符出现一次或者多次
*星号表示前一个字符出现0次或者多次
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值