如何在java中使用AfterAdvice接口

时间:2015-12-16 15:43:43

标签: spring aop aspect

我是spring的新手。我知道AfterAdvice将导致after方法执行目标方法是否完成或异常退出,但我无法找到任何示例。

由于AfterAdvice是一个标记界面,我不知道我需要在其实现类中定义哪种方法。

谢谢,

1 个答案:

答案 0 :(得分:0)

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

  1. 使用@After注释标记要调用的方法。
  2. 使用spring xml bean配置aop:advice来声明一个after advice方法
  3. 但是,如果您选择使用ProxyFactoryBean

    当您指示要使用ProxyFactoryBean时,可以像这样声明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

    有关详细信息,您可以参考Spring AOP上的couple tutorial guides并使用它来理解。