<!-- 【前置通知】(方法前通知) `````````````【拦截器】 -->
<bean id="myMethodBeforeAdvice" class="aop.advice.MyMethodBeforeAdvice"/>
<!-- 名称匹配方法切入点通知(相当于对advice进行包装,增加了定义切入点功能 -->
<bean id="beforeAdvisor"
class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
<property name="advice" ref="myMethodBeforeAdvice"/>
<property name="mappedNames">
<list>
<value>say*</value> <!-- say 开头 的 方法 -->
</list>
</property>
</bean>
<!-- 代理对象 -->
<bean id="welcomeServiceProxy" class="org.springframework.aop.framework.ProxyFactoryBean">
<!-- 代理接口集 -->
<property name="proxyInterfaces">
<list>
<value>aop.service.WelcomeService</value>
</list>
</property>
<!-- 目标对象 -->
<property name="target" ref="welcomeServiceTarget"/>
<!-- 拦截器名集 -->
<property name="interceptorNames">
<list>
<value>beforeAdvisor</value><!-- 代替原来,未增强的 myMethodBeforeAdvice -->
</list>
</property>
<property name="proxyTargetClass" value="true"/>
</bean>
