0

@configurable アノテーション付き Vaadin コントローラーを Spring コンテキストと一緒に使用していますが、問題なく動作しています - Tomcat を再起動する必要があり、セッションが逆シリアル化されている場合を除きます。次に、Vaadin アプリでこれを取得します。

org.springframework.beans.factory.wiring.BeanConfigurerSupport BeanFactory が BeanConfigurerSupport に設定されていません: この構成プログラムが Spring コンテナーで実行されることを確認してください。タイプ [web.vaadin.ui.BackOfficeApplication] の Bean を構成できません。注射なしで進行。

これは、春の豆工場がチャンスを得る前にvaadinアプリが再シリアル化されているためだと思いますか?

(私はCTWを使用しています-aspectjとSpring 3.1.1.RELEASE)

ノート:

ログには、これらのエラーが「ルート WebApplicationContext: 初期化開始」の前に発生したようです。コンテキストの初期化が開始される前に Bean が自動配線されているのはどうしてでしょうか?

4

1 に答える 1

0

私は、Spring と Tomcat を使用した (デ) シリアル化の専門家ではありません。これは答えではありませんが、回避策になる可能性があります。

BackOfficeApplicationが Vaadin アプリケーションである場合@Configurable、そのクラスで使用する代わりの方法があります。代わりに、Vaadin アプリケーションごとの Spring アプリケーション コンテキスト XML ファイルを作成し、これをそれに追加して、BackOfficeApplicationインスタンスを自動配線などにします。

<bean id="backOfficeApplication"
  class="org.dellroad.stuff.vaadin.ContextApplication"
  factory-method="get"/>

一般に@Configurable、Bean ファクトリが後でワイヤリングを行うことを許可するのではなく、オブジェクトの構築時に構成を行う必要があるため、通常の Bean ワイヤリングよりも面倒な場合があります。

理想的には、通常の Bean 配線は、アプリケーションの開始時に一度初期化されるシングルトンに使用する@Configurable必要があり、通常の操作中にランダムに作成される「オンザフライ」Bean に使用する必要があります。

于 2012-07-08T21:33:21.617 に答える