Spring AOP中有两个PointcutAdvisor——RegexpMethodPointcutAdvisor和NameMatchMethodPointcutAdvisor,它们都在org.springframework.aop.support包中,都可以过滤要拦截的方法。配置方法也大致相同,其中一个最主要的区别是——
RegexpMethodPointcutAdvisor:需要加上完整的类名和方法名,例如:com.xw.methodname或com.*.methodname或.*methodname。
NameMatchMethodPointcutAdvisor:只需要方法名,不用加类名:*methodname。
配置文件如下:
1: <bean id="regexp_pointcut"
2: class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
3: <property name="advice">
4: <ref local="advice" />
5: </property>
6: <property name="patterns">
7: <list>
8: <value>com.xw.addAll</value>
9: <value>com.xw.set</value>
10: </list>
11: </property>
12: </bean>
13: <bean id="namematch_pointcut"
14: class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
15: <property name="advice">
16: <ref local="advice" />
17: </property>
18: <property name="mappedNames">
19: <list>
20: <value>add*</value>
21: </list>
22: </property>
23: </bean>
分享到:
相关推荐
10. **预定义Pointcut Advisor**:Spring提供了几种预定义的Pointcut Advisor,如`NameMatchMethodPointcutAdvisor`和`RegexpMethodPointcutAdvisor`,它们分别基于方法名匹配和正则表达式来确定切入点。 11. **...
- **RegexpMethodPointcutAdvisor**:使用正则表达式来匹配方法名。例如,所有包含`method`字符串的方法将被匹配,这为更复杂的匹配规则提供了灵活性。 #### 动态切入点 - **ControlFlowPointcut**:基于控制流的...
4. **Bean `advisor`** - 这是一个 `RegexpMethodPointcutAdvisor`,它结合了切点(Pointcut)和 Advice。`pattern` 属性用于指定哪些方法应该被拦截,这里使用通配符 `.*.*` 表示匹配所有方法。`advice` 属性引用了...
NameMatchMethodPointcutAdvisor RegExpMethodPointcutAdvisor ControlFlowPointcut Pointcut 介面 Pointcut 交集、联集操作 Introduction 为特殊的 Advice,它影响的不是方法的流程,...
NameMatchMethodPointcutAdvisor NameMatchTransactionAttributeSource NamespaceHandler NamespaceHandlerResolver NamespaceHandlerSupport NativeJdbcExtractor NativeJdbcExtractorAdapter ...
<bean id="puradvice" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"> *logincheck.*"/> ``` 最后,`autoproxy` Bean 是一个自动代理创建器,它会为 `purviewimpl` 这个 ...