2015-12-16 58 views
0

我是Spring的新手。我知道AfterAdvice会导致after方法执行,无论target方法是完成还是退出,但我无法找到任何示例。如何在java中使用AfterAdvice接口

由于AfterAdvice是一个标记接口,我不知道我需要在它的实现类中定义哪种方法。

谢谢,

回答

0

您不必直接实现这些接口。相反,您可以使用

  1. 使用@After标注来标记你想它的方法被调用。
  2. 使用Spring XML bean配置aop:advice劝告方法后声明

但是,如果你选择当你表示要使用ProxyFactryBean是使用ProxyFactryBean是

,你可以声明这样的XML

<bean id="interceptor" 
    class="yourimplementation"> 
</bean> 
<bean id="setterAdvisor" 
    class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"> 
    <property name="advice"> 
     <ref bean="interceptor"/> 
    </property> 
    <property name="patterns"> 
     <list> 
      <value>.*set.*</value> 
     </list> 
    </property> 
</bean> 
<bean id="person" 
    class="org.springframework.aop.framework.ProxyFactoryBean"> 
    <property name="proxyInterfaces" value="com.mycompany.Person"/> 
    <property name="target" ref="personTarget"/> 
    <property name="interceptorNames"> 
     <list> 
      <value>setterAdvisor</value> 
     </list> 
    </property> 
</bean> 

对于Java实现,没有使用实施Advice接口。您应该执行ThrowingAdviceAfterReturningAdvice。有关更多信息,请参阅this

欲了解更多信息,可以参考一个coupletutorialguides在Spring AOP和玩它获得的感觉。

+0

我想通过spring xml配置来使用它。你能否提供一个链接的例子,因为我得到的例子只是AfterReeturning建议而不是AfterAdvice。 – Manish

+0

我不使用aop命名空间。我使用ProxyFactoryBean使用基本的xml配置。 – Manish

+0

嗨纳特,感谢您的详细解释,但我的查询是,我们可以使用AfterAdvice使用注释所以有什么办法,我们也可以使用AfterAdvice(Not AfterReturningAdvice)使用xml配置。 – Manish