3

我试图实例化一个构造函数可以抛出异常的bean。我不能修改这个类(由外部团队提供)。

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

myClass 构造函数抛出异常。

我一直在考虑用单例模式扩展这个类,这是我想要的行为(确保只实例化 MyClass 的一个实例)。

错误信息 :

嵌套异常是 org.springframework.beans.factory.BeanCreationException:在类路径资源 [.../spring_applicationContext.xml] 中定义名称为“myClass”的 bean 创建时出错: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

Spring bean 默认是单例的。

您应该提供更多的堆栈跟踪 - 您所显示的表明问题不是 myClass ,而是ClassPathXmlApplicationContext引发异常的构造函数 - 原因通常在堆栈跟踪的后面出现。

干杯,

于 2012-10-03T11:00:10.357 回答
0

根据堆栈跟踪,在创建类“myClass”的对象时,静态块或变量中似乎存在意外错误。

于 2013-11-06T06:24:45.113 回答