使用spring AOP时,CGLib没有默认的构造函数错误

时间:2015-05-26 14:05:31

标签: java spring cglib

我正在尝试使用AOP在进入和离开方法时记录所有方法调用,在我的bean xml中使用下面的bean和aop声明,

<aop:config>
        <aop:pointcut id="componentAnnotatedClass" expression="execution(* com.test.*.*.*(..))" />  
        <aop:advisor advice-ref="loggingAdvisor" pointcut-ref="componentAnnotatedClass"  />
    </aop:config>
    <bean id="loggingAdvisor"  class="org.springframework.aop.interceptor.CustomizableTraceInterceptor">
        <property name="enterMessage" value="Entering $[targetClassShortName].$[methodName]($[arguments])" />
        <property name="exitMessage" value="Leaving $[targetClassShortName].$[methodName](): $[returnValue], Total Execution Time : $[invocationTime]ms" />
    </bean> 

但是当我使用它时,我会得到如下的异常,

    Caused by: org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class com.test.dao.BCommonDataAccessor]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given

当我浏览这个时,我知道cglib需要一个默认的consructor,但在我的应用程序中我有一个参数化构造函数来注入我的数据源。我的数据访问器中没有默认构造函数。是否有任何工作来解决这个问题。 注意:我使用的是spring3.2 vesion

0 个答案:

没有答案