两种动态代理区别 1.JDK动态代理: 基于接口,代理对象和目标对象是兄弟关系,所以目标类必须实现接口,在接收代理对象时也必须用接口去接收 2.CGLIB动态代理:基于父类,代理对象和目标对象是父子关系,所以目标类不能被final修饰