JDK动态代理:依靠接口实现,如果有些类没有接口,则不能使用JDK代理 cglib动态代理:cglib是针对类来实现的,他的原理是对指定的目标类生成一个子类,并覆盖其中方法,实现增强,但因为采用的是继承,所以不能对final修饰的类进行代理