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>

 

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

时间: 2024-10-18 06:58:50

Spring aop报错:com.sun.proxy.$Proxyxxx cannot be cast to yyy的相关文章

spring aop报错:Cannot proxy target class because CGLIB2 is not available.

问题描述 今天在整合spring aop时报了这个错:Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListenerorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpwordDa

spring 写junit测试时使用aop报错

问题描述 spring 写junit测试时使用aop报错 当我在我的配置文件中加上如下配置会包下面的错误,我不加时就不会出错这是为什么 <aop:config> <aop:pointcut id="interceptorPointCuts" expression="execution(* cn.qtt.service.*.*(..)) " /> <aop:pointcut id="interceptorPointCutsNew

spring batch 报错,求大神赐教,急急急急。。。。。。

问题描述 spring batch 报错,求大神赐教,急急急急...... 2014-2-22 13:13:42 org.springframework.context.support.AbstractApplicationContext prepareRefresh 信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@13d93f4: display name [org.spring

tomcat6 spring 启动报错

问题描述 tomcat6 spring 启动报错 java.lang.IllegalStateException: LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via the context: Root WebApplicationContext: startup date [Mon Jun 09 13:43:08 CST 2014]; root of context

spring mvc 报错,求解答,各位好心人必有好报。

问题描述 spring mvc 报错,求解答,各位好心人必有好报. 六月 07, 2015 6:55:04 下午 org.apache.catalina.core.StandardContext listenerStart 严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.sp

图片-加入biz层后,配置spring一直报错,求大神解决

问题描述 加入biz层后,配置spring一直报错,求大神解决

spring security报错,实在是找不出原因

问题描述 spring security报错,实在是找不出原因 说明一下,给别人的项目部署的时候报错的,项目代码没问题,配置也不会错,找了很久的原因不知道错在哪. #这是spring security的配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:security

spring cloud 报错Error creating bean with name &amp;#39;hystrixCommandAspect&amp;#39; ,解决方案

  spring cloud 升级到最新版 后,报错: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hystrixCommandAspect' defined in class path resource [org/springframework/cloud/netflix/hystrix/HystrixCircuitBreakerConfiguration.cla

spring cglib报错 xxx cannot be cast to xxx

问题描述 1,想使用ehcache+springjdbc实现查询结果缓存,现在功能都实现了,但是使用时报错:java.lang.ClassCastException:com.hbzx.bean.ShopViewCountBeancannotbecasttojava.util.Listatcom.hbzx.dao.ShopViewCountDao$$EnhancerBySpringCGLIB$$1c70ff76.queryAll(<generated>)atcom.hbzx.service.Sh