2011-11-11 14 views
1

私は、トランザクションの処理時間を取得するためにスプリングAOPのaround adviceを使用しています。私は、問題は、このthreadの助けを借りているものを同定し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をされて変更することはできません

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

私が本当にあれば幸いです誰かが助けることができます。御時間ありがとうございます。

答えて

0

MessageSourceAccessorアクセサをBeanとしてコンフィグレーションする必要はありませんが、必要に応じて手動でインスタンス化する方が一般的に簡単です。したがって、豆にMessageSourceAccessorを注入するのではなく、MessageSourceの生薬を注入し、必要に応じてMessageSourceAccessorに入れます(new MessageSourceAccessor(messageSource)を使用)。

MessageSourceAccessorではなく、MessageSourceの周りにアドバイスを置くことができます。また、MessageSourceAccessorは、処理時間を大幅に増やすことはなく、MessageSourceの周りの薄いラッパーです。

+0

ありがとうskaffman。これは既存のアプリケーションであり、MessageSourceAccessor Beanは異なるクラスの束に注入されています。他のすべてのクラスを変更するのは快適ではありません。私はこの問題のために他に何か回避策があるのだろうかと思います。お知らせ下さい – swetha

関連する問題