public static void main(String[] args) {
Moveable car = new Car();
InvocationHandler timeHandler = new TimeHandler(car);
Class<?> cls = car.getClass();
Moveable timeCar = (Moveable) Proxy.newProxyInstance(
cls.getClassLoader(), cls.getInterfaces(), timeHandler);
InvocationHandler logHandler = new LogHandler(timeCar);
Moveable logCar = (Moveable) Proxy.newProxyInstance(
cls.getClassLoader(), cls.getInterfaces(), logHandler);
logCar.move();
}
完全不一样了,
jdk动态代理是通过接口,只有接口实现了实现类,才可以用jdk进行代理:
cglib是通过类,通过拦截技术拦截父类调用的技术,在创建子类进行覆盖,
jdk和cglib是完全不一样的2个概念
看视频教程吧 ,我也不知道怎么改写