3

コンストラクターが例外をスローできる Bean をインスタンス化しようとしています。このクラスを変更できません (外部チームから提供されたもの)。

<bean id="myClass" class="myClass" />

myClass コンストラクターは例外をスローします。

このクラスをシングルトン パターンで拡張することを考えていましたが、これは私が望む動作です (MyClass のインスタンスを 1 つだけインスタンス化してください)。

エラーメッセージ :

ネストされた例外は org.springframework.beans.factory.BeanCreationException: クラスパス リソースで定義された名前 'myClass' の Bean の作成中にエラーが発生しました [.../spring_applicationContext.xml]: Bean のインスタンス化に失敗しました。ネストされた例外は org.springframework.beans.BeanInstantiationException: Bean クラス [myClass] をインスタンス化できませんでした: コンストラクターが例外をスローしました。ネストされた例外は java.lang.ExceptionInInitializerError です

回答ありがとうございます

問題は、コンストラクターが例外をスローするという事実にあると思います。

私の質問は次のとおりです。Spring では、例外をスローする可能性のあるコンストラクターで Bean をインスタンス化することは可能ですか?

4

3 に答える 3

3

Bean構成ファイルでBeanスコープが指定されていない場合、デフォルトはシングルトンです。BeanmyClassはシングルトンであり、これ以上何もする必要はありません。
春のドキュメント

于 2012-10-03T11:00:15.277 に答える
1

SpringBeanはデフォルトでシングルトンです。

より多くのスタックトレースを提供する必要があります-あなたが示しているのは、問題がmyClassではなくClassPathXmlApplicationContext、例外をスローするコンストラクターであることを示しています-原因は通常、スタックトレースの後半に続きます。

乾杯、

于 2012-10-03T11:00:10.357 に答える
0

スタック トレースによると、クラス 'myClass' のオブジェクトの作成中に、静的ブロックまたは変数で予期しないエラーが発生したようです。

于 2013-11-06T06:24:45.113 に答える