报错:com.sun.proxy.$Proxy10 cannot be cast to org.lanqiao.service.impl.StudentServiceImpl:
1.知识点:
Spring AOP实现的两种方式:
1.使用JDK动态代理,如果被代理的目标实现了至少一个接口,则会使用JDK动态代理,所有该目标类型实现的接口都会被代理。
2.通过CGLIB来为目标对象创建代理,若该目标对象没有实现任何接口,则创建一个CGLIB代理,创建的代理类是目标类的子类。
2.错误分析:
我用StudentServiceImpl实现了StudentService接口,aop应该使用了JDK Proxy。不能将实现类(StudentServiceImpl)直接转换为proxy的实现类。
3.总结:
在spring中,没有涉及AOP,只是将对象加到IOC容器中,就不用代理,也就不会报这种cannot be cast 无法转换类型异常。