package com.hikversion.controller;
import org.springframework.cglib.proxy.Enhancer;
import org.springframework.cglib.proxy.MethodInterceptor;
import org.springframework.cglib.proxy.MethodProxy;
import java.lang.reflect.Method;
public class TestMethodInterceptor {
public static void main(String[] args) {
Enhancer enhancer=new Enhancer();
enhancer.setSuperclass(TestMethodInterceptor.class);
enhancer.setCallback(new adviseMethodInterceptor());
Object proxy = enhancer.create();
TestMethodInterceptor methodInterceptor = (TestMethodInterceptor) proxy;
methodInterceptor.doSomeThing("通过代理工厂设置代理对象,拦截代理方法");
}
public static class adviseMethodInterceptor implements MethodInterceptor {
public Object intercept(Object arg0, Method method, Object[] arg2, MethodProxy arg3)throws Throwable {
System.out.println("==================");
arg3.invokeSuper(arg0, arg2);
System.out.println("expected role is but now is " );
return null;
}
}
public String doSomeThing(String someThing){
System.out.println("执行被拦截的方法:"+someThing);
//int i=5/0;
return "执行被拦截的方法:"+someThing;
}
}