介绍
动态代理主要作用为,在原有方法的功能上,通过不修改目标对象的代码情况下,对原有方法的功能进行横向扩展。
原生扩展调用
原生方法的调用需要对代码进行修改,从而达到拦截的作用,修改复杂且耦合性较高
/**
* 正常调用纵向扩展
*/
public abstract class AbstractNativeService {
public abstract void info();
public abstract void info2();
public void aspectInfo(){
System.out.println("before info");
this.info();
System.out.println("after info");
}
public void aspectInfo2(){
System.out.println("before info2");
this.info2();
System.out.println("after info2");
}
}
public class NativeService extends AbstractNativeService {
@Override
public void info() {
System.out.println("info 1");
}
@Override
public void info2() {
System.out.println("Info 2");
}
}
以下会通用该接口
public interface Func