【发布时间】:2015-05-29 23:28:15
【问题描述】:
我正在尝试将一个新的 Spring bean 添加到我的一个项目中。 bean 是在另一个包中定义和创建的,如下所示:
@Configuration
public class UtilityBeans {
public static String MY_BEAN_NAME = "my.bean.name";
@Bean(name = MY_BEAN_NAME)
public MyUtilBeanClass getMyBeanClass() {
return new MyUtilBeanClass();
}
}
我在我的其他包中这样使用它:
@Configuration
@Import({
UtilityBeans.class
)}
...
@Resource(name = UtilityBeans.MY_BEAN_NAME)
private MyUtilBeanClass myUtilBeans;
在运行时我得到:
错误 原因:org.springframework.beans.factory.BeanCreationNotAllowedException:创建名为“my.bean.name”的bean时出错:当该工厂的单例处于破坏状态时,不允许创建单例bean(不要从BeanFactory中请求bean一个销毁方法的实现!) ...
日志没有给我任何有用的信息,因为堆栈跟踪都在 Spring 库中。我怎样才能找出失败的原因?是资源使用不正确还是bean创建本身有问题?
我正在使用带有 JDK8 的 Spring-4。
【问题讨论】:
-
将您的日志转至 DEBUG/TRACE 以获取更多信息。我们需要更完整的东西。请提供 MCVE。
-
您发布的代码中的 myBeanConfig 在哪里?
-
对不起,我试图混淆/缩小代码的错误。将其修复为正在发生的正确错误。