我们在使用通配符定义切入方法未免不够灵活,spring为我们提供了使用正则表达式定义切入点的方法,且有两个特点
1.更加灵活
2.可以对包括包名和类名
需要注意的是,使用RegexpMethodPointcut,必须在classpath中加入jakarta.common.ORO类库
大部分代码和 http://blog.csdn.net/daryl715/archive/2007/05/20/1618292.aspx 这边文章类似,不同的就是spring配置文件
<
bean
id
="shoppingPointCutAdvisor"
class
="org.springframework.aop.support.RegexpMethodPointcutAdvisor"
>
< property name ="pattern" >
< value > .*sell.+ </ value >
</ property >
< property name ="advice" >
< ref bean ="shoppingAdvise" />
</ property >
</ bean >
< property name ="pattern" >
< value > .*sell.+ </ value >
</ property >
< property name ="advice" >
< ref bean ="shoppingAdvise" />
</ property >
</ bean >
这是使用正则表达式定义切入点不同之处
其中.*sell.+表示可以是任何包的以sell开头的,后面至少有一个字符的方法
比如Test.sel
<
bean
id
="shoppingAdvise"
class
="StaticAdvisorTest.WelcomeAdvice"
></
bean
>
<!-- 使用正则表达式
<bean id="shoppingPointCutAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<property name="pattern">
<value>.*sell.+</value>
</property>
......
</bean>
<!-- 使用正则表达式
<bean id="shoppingPointCutAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<property name="pattern">
<value>.*sell.+</value>
</property>
......
</bean>