欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用切入点匹配方法实现Spring AOP环绕通知

程序员文章站 2022-06-21 09:21:28
...

       为AOP代理指定通知时,将增强目标类/代理接口里声明的所有方法。但是大多数情况下,你只想增强部分方法。此时可以使用切入点匹配方法来解决这个问题。

    切入点(pointcut)是另一个核心的AOP概念,它通常以表达式的形式出现,能够匹配特定的程序执行点来通知应用。在Spring AOP里,使用切入点类切入点声明为Spring Bean。

 

<bean id="arithmeticCalculator"
		class="org.mahz.easyaop.calculator.impl.ArithmeticCalculatorImpl" />
<bean id="methodNameAdvisor"
	class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
	<property name="mappedNames">
		<list>
			<value>add</value>
			<value>sub</value>
		</list>
	</property>
	<property name="advice" ref="logginAroundAdvice" />
</bean>

<bean id="logginAroundAdvice" 
         class="org.mahz.easyaop.calculator.aop.LoggingAroundAdvice" />
<bean
	class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
	<property name="beanNames">
		<list>
			<value>*Calculator</value>
		</list>
	</property>
	<property name="interceptorNames">
		<list>
			<value>methodNameAdvisor</value>
		</list>
	</property>
</bean>

     执行结果:

==========================================
============ Test add Method =============
==========================================
The method add()begin with [4.0, 0.0]
4.0 + 0.0 = 4.0
The Method add() ends with 4.0
==========================================
============ Test sub Method =============
==========================================
The method sub()begin with [4.0, 0.0]
4.0 - 0.0 = 4.0
The Method sub() ends with 4.0
4.0 * 0.0 = 0.0