2017-05-09 17 views
0

私は、自分のプロセッサであるクラスのループ内にステートフルなBeanをいくつかフェッチする必要があります。このプロセッサBean自体はシングルトンBeanです。今問題は1つの場所で私は正常にアプリケーションコンテキストから豆を得ることができるが、他のケースでは私はプロキシオブジェクトを取得しています。私はアノテーションを使ってBeanのスコープを定義し、コンポーネントスキャンを使用しています。アプリケーションコンテキストからプロトタイプBeanを取得する際の問題

ケース1 - インターフェース1

クラスAは、インターフェース1

applicationContext.getBean( "A"、A.class)を実装します。これは、クラスAを正常にA 2 -interface2 クラスBは、インターフェイス2(クラスBのプロトタイプビーンある) applicationContext.getBean( "B"、B.class)を実装プロトタイプビーン

場合である.classファイルのオブジェクトを返します。 これはタイプの不一致について不平を言います実行時例外を投げます 私がすればb b =(B)applicationContext.getBean( "b"、); これは、型キャストの例外を与えます 私が行う場合 applicationContext.getBean( "b"); 次に、プロキシオブジェクトを返します。 この現象は理解できません。

任意の提案やヘルプは素晴らしいだろう....

+0

コードを追加してください – reos

+0

また、あなたのBeanのプロキシ処理を担当するフレームワークを使用していますか? AspectJ、例えば? –

+0

はいトーマス。アプリケーションコンテキストがBeanの代わりにプロキシオブジェクトを与えていたため、Beanの周りにアスペクトがあったためです。 –

答えて

0

アプリケーションでプロトタイプビーンの周りの側面がある場合は、デフォルトのアプリケーションコンテキストでプロキシオブジェクトと型キャストが可能と文句を言わない返すこと私を発見しました、

関連する問題