动态代理为什么要用到service层接收返回类型

最近在学习spring的动态代理机制时,发现如果用service的实现类接收就会报错:class com.sun.proxy.$Proxy19 cannot be cast to class gsr.huiyuan.all.service.serviceintegralImpl 只有service接口接收才能正常运行。

img

img

img

img

img

你实现了这个接口,所以可以用类型的父类型进行接收,你也可以用exp 当返回类型

首先要明白动态代理做了哪些事情,如果是jdk的动态代理,它会生成一个代理的类加载到虚拟机里面,这个代理类就是实现了被代理类的接口,意思就是$Prox这个类实现了service的接口,所以你用接口是可以接收的,你的代理类和你的service实现类没有任何关系,当然就不能接受了