一,拦截器
程序设计者经常设计一个拦截器接口供开发者使用,开发者只要知道拦截器接口的方法,含义和作用即可,无需知道动态代理的具体实现。
接口和真实对象:
public interface DaoInterface {
public void say();
}
public class RealObject implements DaoInterface {
@Override
public void say() {
System.out.println("我是真实对象!!!!!!!");
}
}
拦截器:
before方法,在真实对象之前调用。当返回是true时,则反射真实对象的方法;当返回为false时,则调用around。
public interface Interceptor {
//真实对象前调用返回true,反射真实对象的方法;返回false时则调用around方法
public boolean before(Object proxy, Object target, Method method, Object[] args);
public void around(Object proxy,Object target,Method method,Object[] args);
public void after(Object proxy,Object target,Method method,Object[] args);
}
public class MyInterceptor implements Interceptor{
@Override
public boolean before(Object proxy, Object target, Method method, Object[] args) {
System.out.println("反射方法前的逻辑");
return false;
}
@Override
public void around