报错:
java.lang.ClassCastException: com.sun.proxy.$Proxy20 cannot be cast to com.xian.impl.MyMathCalculator
at com.xian.test.Test2.test(Test2.java:17)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
当代理对象实现了至少一个接口时, 此代理对象与与本类的联系就是这个接口, 此时应该使用这个类的接口类去获取这个bean.
对于Spring AOP 采用两种代理方法,一种是常规JDK,一种是CGLIB,我的MyMathCalculator实现了一个接口Calculator,当代理对象实现了至少一个接口时,默认使用JDK动态创建代理对象,当代理对象没有实现任何接口时,就会使用CGLIB方法。由于MyMathCalculator实现了Calculator接口,所以强制转换必须用父类Calculator来定义
使用Spring AOP时, 该类实现了一个接口:
@Service("sss")
public class MyMathCalculator implements Calculator {
public int add(int a, int b) {
int resul