我是一个 ServiceImpl ,它使用 Spring 的 @Service 原型进行注释,并且其中有两个方法,每个方法都使用 Spring 拦截的自定义注释进行注释。
@Service
public class ServiceImpl implements Service{
@CustomAnnotation
public void method1(){
...
}
@AnotherCustomAnnotation
public void method2(){
this.method1();
...
}
}
}
现在 Spring 使用基于代理的 AOP 方法,因此,由于我使用this.method1()
@CustomAnnotation 的拦截器将无法拦截此调用,我们曾经在另一个 FactoryClass 中注入此服务,这样我们就能够获得代理实例,例如 -
@AnotherCustomAnnotation
public void method2(){
someFactory.getService().method1();
...
}
我现在正在使用 Spring 3.0.x,这是获取代理实例的最佳方式吗?