spring项目统一添加动态代理类型
import org. springframework. context. annotation. Configuration;
import org. springframework. scheduling. annotation. ScheduledAnnotationBeanPostProcessor;
import java. lang. reflect. InvocationHandler;
import java. lang. reflect. Method;
import java. lang. reflect. Proxy;
@Configuration
public class TestHandler extends ScheduledAnnotationBeanPostProcessor {
@Override
public Object postProcessAfterInitialization ( final Object bean, String beanName) {
return Proxy. newProxyInstance ( bean. getClass ( ) . getClassLoader ( ) , bean. getClass ( ) . getInterfaces ( ) , new InvokeFactory ( bean) ) ;
}
static class InvokeFactory implements InvocationHandler {
private Object target;
public InvokeFactory ( Object target) {
this . target = target;
}
@Override
public Object invoke ( Object proxy, Method method, Object[ ] args) throws Throwable {
return Proxy. getInvocationHandler ( target) . invoke ( proxy, method, args) ; ;
}
}
}