标题:求解spring aop cglib问题
取消只看楼主
sushengzhou
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-6-15
 问题点数:0 回复次数:2 
求解spring aop cglib问题
是这样的,我在使用spring的aop中不想用有接口的类,所以就用cglib来实现aop,我在ilb中加了cglib-nodep-2.1_3.jar等包,配置中这样写的
    <aop:aspectj-autoproxy proxy-target-class="true" />
    <bean class="org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator" />
    <bean class="com.bbs.aop.PutAop"/>
    <!-- test bean -->
    <bean id="testbean" class="com.test.Hello"/>
测试中这样写的:
    public void mytest(){
    BeanFactory bf = new ClassPathXmlApplicationContext("applicationContext_*.xml");
    Hello h = (Hello)bf.getBean("testbean");
    h.out();
    }
测试生成了一个代理    "$Proxy6",很明显这个$Proxy6是要有接口才能接的,十分不明白,我明明强制使用cglib来生成Hello子类了,为什么还是给我生成了个代理呢?不知道使用cglib还要有哪些配置,我用的spring是2.5的,知道问题的朋友能赐教一下吗?谢谢了
搜索更多相关主题的帖子: spring aop cglib 求解 
2008-11-06 11:35
sushengzhou
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-6-15
得分:0 
我配了xml的配置如下
     <aop:aspectj-autoproxy proxy-target-class="true" />
     <bean class="org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator" />
    <bean id="putaop" class="com.bbs.aop.PutAop"/>
    <!-- test bean -->
    <bean id="testbean" class="com.test.Hello"/>
    <aop:config>
         <aop:aspect id="getAspect" ref="putaop">
             <aop:pointcut id="alladduse" expression="execution(* com.test.Hello.out(..))" />
             <aop:before pointcut-ref="alladduse" method="qian"/>
         </aop:aspect>
    </aop:config>
增强的方法
    public void hou(){
        System.out.println("---使用了一个方法---");
    };
可结果还是一样
         java.lang.ClassCastException: $Proxy4
是不是有什么地方写得不对啊?
我看网上有些文章说要用cglib要配什么classpath的,但又没说要配成什么样的,奇怪了??
2008-11-06 15:44
sushengzhou
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-6-15
得分:0 
已经解决了!!!!结贴
2008-11-06 18:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-242699-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.224329 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved