在使用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>

本文转自博客园xingoo的博客,原文链接:Spring aop报错:com.sun.proxy.$Proxyxxx cannot be cast to yyy,如需转载请自行联系原博主。

Spring aop报错:com.sun.proxy.$Proxyxxx cannot be cast to yyy相关推荐

  1. Spring AOP 报错 Exception encountered during context initialization - cancelling refresh attempt[已解决]

    三月 19, 2018 4:01:40 下午 org.springframework.context.support.AbstractApplicationContext prepareRefresh ...

  2. 解决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 ...

  3. 使用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 ...

  4. 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 ...

  5. Spring Boot 报错ThreadPoolTaskExecutor : Shutting down ExecutorService ‘applicationTaskExecutor‘

    问题 Spring Boot 报错ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor' 原因 ...

  6. 启动Spring项目报错,Springboot启动报错 Disconnected from the target VM 解决过程

    启动Spring项目报错,Springboot启动报错 Disconnected from the target VM 解决过程 大概率是缺少了一下依赖 <dependency><g ...

  7. 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 ...

  8. spring 配置文件报错 Cannot resolve class or package

    Spring 配置文件报错 Cannot resolve class or package 明明有明确的类但是还会报错 解决:重新 mvn clean install spring 会一次加载所有在x ...

  9. Java报错:java.math.BigDecimal cannot be cast to java.lang.String

    从数据库取数字,转为string,报错: java.math.BigDecimal cannot be cast to java.lang.String 错误代码 Integer.parseInt(( ...

最新文章

  1. js date 加一天_你不一定了解的js数据类型
  2. sqlyog怎么设置默认值_详细讲解如何用SQLyog来分析MySQL数据库
  3. SERVICE问题解决方法
  4. OpenCV C++ 01 - Load Image from File and Display
  5. centos7 搭建dhcp服务器
  6. Java线程池ThreadPoolExecutor
  7. selenium持续集成_使用Selenium进行Spring Boot集成测试
  8. 【转】Windows Server 2012 R2 双网卡绑定
  9. 多继承以及MRO顺序【super().的使用】
  10. 华为云技术开放日(第三季)活动报道
  11. WORD如何对标题批量地应用样式?
  12. Eclipse 取消import自动补全具体的类名
  13. 无法启动因为计算机丢失ac1st16,重装系统后cad2006打不开.提示因为计算机中丢失ac1st16.dll...
  14. 浅谈css中一个元素如何在其父元素居中显示
  15. (转)扰码Scrambling和扩频码(PN码)的区别
  16. SONY 系列手机 Android 5.1 系统 Root 方法
  17. 说课c语言字符数组,C语言说课(超好).ppt
  18. 华为、阿里等大厂程序员真的好找对象吗?
  19. 语音数字信号处理技术应用 --- 创新点头脑风暴
  20. Win11系统QQ语音通话时玩游戏无声音怎么办

热门文章

  1. 构建最小根文件系统lfs
  2. 笔记本快捷键(fl980)
  3. python猴子分桃问题_用python实现【五猴分桃】问题
  4. P1359 租用游艇【Floyd】
  5. 石家庄12重点项目开工,滹沱新区更名为正定新区
  6. 用户在图片上点选并标记位置,js实现
  7. 微信摇一摇服务器实现,微信摇一摇事件通知
  8. 微信小程序订阅信息之Java实现详解
  9. 腾讯网上共享excel使用总结
  10. 无人货架上演生死时速,谁会成为最后的赢家?