在我们的项目中,我们正在使用Spring Framework
,现在我需要拦截对任何对象方法的任何方法调用。 Spring
提供这样的设施吗?我的意思是,例如我们有一个方法:
public void m(){
MyClass a = new MyClass();
a.method(); //I need to intercept that method call and invoke some stuff
}
这样的事情可能吗?
答案 0 :(得分:3)
是的,它可能 - 您需要使用AOP。如果你想拦截来自 spring managed bean 的方法的每次调用,那么Spring AOP java代理就足够了。否则,您将需要使用AspectJ。
答案 1 :(得分:1)
您需要在项目中加入Spring AOP。
拦截MyClass
中定义的方法的任何调用的选项是:
@Around("* my.application.MyClass.*(..)")
public Object interceptAnyMethodCall(ProceedingJoinPoint pjp) throws Throwable {
Object retVal = pjp.proceed();
// ... your code
return retVal;
}