前置通知和环绕通知的配置实例
<!--配置一个目标对象-->
<bean id="testService" class="com.Aop.TestService">
<property name="name" value="没鱼"/>
</bean>
<!--配置一个通知-->
<bean id="myMenthodBeforeAdvice" class="com.Aop.MyMethodBeforeAdvice"/>
<bean id="MyMethodInterceptor" class="com.Aop.MyMethodInterceptor"/>
<!--配置一个代理对象-->
<bean id="proxyFactoryBean" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
<list>
<value>com.Aop.Interface1</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>myMenthodBeforeAdvice</value>
<value>MyMethodInterceptor</value>
</list>
</property>
<property name="target" ref="testService"/>
</bean>
需要注意的是:
1)proxyFactoryBean 配置一个代理对象
2)proxyInterfaces 配置一个代理接口集合
3)interceptorNames 织入通知
4)target 配置被代理对象
AOP提供了5中通知的机制
前置通知 MethodBeforeAdvice,返回后通知 AfterReturningAdvice
抛出异常通知 ThrowsAdvice,环绕通知 MethodInceptor,引用通知
步骤:
1)定义接口
2)编写对象(被代理的对象 == 目标对象)
3)编写通知
4)在xml文件中配置
a.配置被代理对象
b.配置通知
c.配置代理对象
①配置代理接口集合 proxyInterfaces
②织入通知 interceptorNames
③配置被代理对象 target ref