1

我正在使用 spring AOP 的周围建议来捕获事务的处理时间。我在应用程序启动期间收到以下错误

error creating bean "coreMessageResourceAccesor"
   Could not generate CGLIB subclass of class 
     [class org.springframework.context.support.MessageSourceAccessor]: 
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

我在这个线程的帮助下确定了问题所在。但是我不能将 coreMessageResourceAccesor bean 更改为使用基于 setter 的注入,因为它使用 spring 类并且该类没有 arg 构造函数

下面是bean的配置

<bean id="coreMessageSourceAccessor"
        class="org.springframework.context.support.MessageSourceAccessor" >
    <constructor-arg type="org.springframework.context.MessageSource"
        ref="coreMessageSource" />
</bean>

如果有人可以提供帮助,我将不胜感激。谢谢你的时间。

4

1 回答 1

0

您实际上不需要将MessageSourceAccessor访问器配置为 bean,根据需要手动实例化它通常更容易。因此,与其将 注入MessageSourceAccessor到您的 bean 中,不如注入 raw MessageSource,然后MessageSourceAccessor根据需要将其包装在 a 中(即使用new MessageSourceAccessor(messageSource))。

然后,您可以将建议放在 theMessageSource而不是周围MessageSourceAccessor,这样会更好。此外,MessageSourceAccessor它本身不会增加任何显着的处理时间,它只是MessageSource.

于 2011-11-11T21:51:00.183 回答