如何将ThrowsAdvice应用于实现MyInterface的所有类

时间:2015-08-07 10:36:08

标签: java spring spring-aop

我是Spring的新手,学习AOP。 我的要求是我必须对所有实现ThrowsAdvice的类应用MyInterface。 我已经看过许多解释单课的教程。但我正在寻找所有实现MyInterface的类。 我想应用proxyfactorybean target ref =所有接口实现类

interface  MyInt{
    public String a();
    public String b();
}

我想申请其实施类

class Test1 implements MyInt{
    public String a(){ return "some val";}
    public String b(){ return "some val";}
}


class Test2 implements MyInt{
    public String a(){ return "some val";}
    public String b(){ return "some val";}
}  

在许多Toturials中,他们解释了

<bean id="obj1" class="com.xx.Test1"></bean>  
<bean id="obj2" class="com.xx.Test2"></bean>  
<bean id="ba" class="com.yyy.ThrowsAdvisor"></bean>  

<bean id="proxy"     class="org.springframework.aop.framework.ProxyFactoryBean">  
<property name="target" ref="obj1"></property>  
<property name="interceptorNames">  
<list>  
<value>ba</value>  
</list>  
</property>  
</bean>  

我想对实现ProxyFactoryBean的所有类应用MyInt目标。

1 个答案:

答案 0 :(得分:0)

建议MyInt的所有实施类使用target切入点指示符。

建议&amp;切入点应该看起来像下面的东西

@Aspect
public class SomeAfterThrowingAdvice {

    @AfterThrowing("target(a.b.c.MyInt)")
    public void doSomething() {
        // log, recover etc.
    }
}

如果您需要任何进一步的信息,请在评论中说明。

P.S。:建议学习最新版本的框架;这是4.2.0在撰写本文时)。