Spring AOP - Ошибка генерации прокси - PullRequest
1 голос
/ 11 ноября 2011

Я использую совет Spring 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

Я определил, в чем проблема с помощью этой темы . Но я не могу изменить bean-компонент coreMessageResourceAccesor, чтобы использовать инъекцию, основанную на установщике, потому что он использует класс Spring и этот класс не имеет конструктора arg

Ниже приведена конфигурация для компонента

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

Я был бы очень признателен, если бы кто-то мог помочь. Спасибо за ваше время.

1 Ответ

0 голосов
/ 12 ноября 2011

На самом деле вам не нужно настраивать аксессор MessageSourceAccessor как компонент, обычно его проще создавать вручную, как требуется.Таким образом, вместо того, чтобы вводить MessageSourceAccessor в ваши бобы, добавьте необработанный MessageSource, а затем оберните его в MessageSourceAccessor, как требуется (то есть, используя new MessageSourceAccessor(messageSource)).

Затем вы можете поместить советвокруг MessageSource, а не MessageSourceAccessor, который будет работать лучше.Кроме того, MessageSourceAccessor само по себе не добавляет значительного времени обработки, это просто тонкая оболочка вокруг MessageSource.

...