Spring aop报错:com.sun.proxy.$Proxyxxx cannot be cast to yyy
在使用Spring AOP时,遇到如下的错误:
Exception in thread "main" java.lang.ClassCastException: com.sun.proxy.$Proxy0 cannot be cast to com.spring.test.setter.Instrumentalist
at com.spring.test.setter.test.main(test.java:12)
看报错信息,显示的是动态代理生成的类无法转换到我们自定义的实现类。
解决办法:
在aop:config标签中添加 proxy-target-class="true" 即可。
【解释说明】
按照博客的说法:http://blog.csdn.net/z69183787/article/details/17161297
由于生成代理类有两种方式:JDK和CGLIB,一种是基于接口的,一种是基于类的。
如果添加上面的属性则使用基于类的cglib的方式,相反,如果没有写或者是false则通过jdk的基于接口的方式生成代理类。
当然,如果本身不是基于接口的,那么会自动使用cglib的方式,在这里很奇怪为什么没有自动走cglib的方式。
个中缘由,还得去看aop的源码,这里先做下记录。
下面是我自己的spring配置文件,仅供参考
<aop:config proxy-target-class="true"><aop:aspect ref="audience"><aop:before pointcut="execution(* com.spring.test.action1.Performer.perform(..))"method="takeSeats"/><aop:before pointcut="execution(* com.spring.test.action1.Performer.perform(..))"method="turnOffCellPhones"/><aop:after-returning pointcut="execution(* com.spring.test.action1.Performer.perform(..))"method="applaud"/><aop:after-throwing pointcut="execution(* com.spring.test.action1.Performer.perform(..))"method="demandRefund"/></aop:aspect></aop:config>
Spring aop报错:com.sun.proxy.$Proxyxxx cannot be cast to yyy相关推荐
- Spring AOP 报错 Exception encountered during context initialization - cancelling refresh attempt[已解决]
三月 19, 2018 4:01:40 下午 org.springframework.context.support.AbstractApplicationContext prepareRefresh ...
- 解决Spring Boot报错Mapped Statements collection already contains value for...Error while adding the mapp
解决Spring Boot报错Mapped Statements collection already contains value for...Error while adding the mapp ...
- 使用ANT编译项目报错 com.sun.image.codec.jpeg does not exist 解决方法
使用ANT编译项目报错 com.sun.image.codec.jpeg does not exist 解决方法 参考文章: (1)使用ANT编译项目报错 com.sun.image.codec.jp ...
- Spring data报错:Inferred type 'S' for type parameter 'S' is not within its bound;
Spring data报错:Inferred type 'S' for type parameter 'S' is not within its bound; 参照 org.springframewo ...
- Spring Boot 报错ThreadPoolTaskExecutor : Shutting down ExecutorService ‘applicationTaskExecutor‘
问题 Spring Boot 报错ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor' 原因 ...
- 启动Spring项目报错,Springboot启动报错 Disconnected from the target VM 解决过程
启动Spring项目报错,Springboot启动报错 Disconnected from the target VM 解决过程 大概率是缺少了一下依赖 <dependency><g ...
- spring运行报错--org.xml.sax.SAXParseException; lineNumber: 6; columnNumber: 73; cvc-elt.1: 找不到元素 bean的声明
关于spring运行报错 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 6 in XML do ...
- spring 配置文件报错 Cannot resolve class or package
Spring 配置文件报错 Cannot resolve class or package 明明有明确的类但是还会报错 解决:重新 mvn clean install spring 会一次加载所有在x ...
- Java报错:java.math.BigDecimal cannot be cast to java.lang.String
从数据库取数字,转为string,报错: java.math.BigDecimal cannot be cast to java.lang.String 错误代码 Integer.parseInt(( ...
最新文章
- js date 加一天_你不一定了解的js数据类型
- sqlyog怎么设置默认值_详细讲解如何用SQLyog来分析MySQL数据库
- SERVICE问题解决方法
- OpenCV C++ 01 - Load Image from File and Display
- centos7 搭建dhcp服务器
- Java线程池ThreadPoolExecutor
- selenium持续集成_使用Selenium进行Spring Boot集成测试
- 【转】Windows Server 2012 R2 双网卡绑定
- 多继承以及MRO顺序【super().的使用】
- 华为云技术开放日(第三季)活动报道
- WORD如何对标题批量地应用样式?
- Eclipse 取消import自动补全具体的类名
- 无法启动因为计算机丢失ac1st16,重装系统后cad2006打不开.提示因为计算机中丢失ac1st16.dll...
- 浅谈css中一个元素如何在其父元素居中显示
- (转)扰码Scrambling和扩频码(PN码)的区别
- SONY 系列手机 Android 5.1 系统 Root 方法
- 说课c语言字符数组,C语言说课(超好).ppt
- 华为、阿里等大厂程序员真的好找对象吗?
- 语音数字信号处理技术应用 --- 创新点头脑风暴
- Win11系统QQ语音通话时玩游戏无声音怎么办