Spring:如何调试 BeanCreationNotAllowedException?
Spring: How can I debug a BeanCreationNotAllowedException?
我正在尝试向我的一个项目添加一个新的 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;
在运行时我得到:
错误
Caused by: org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'my.bean.name': 当这个工厂的单例正在销毁时,不允许创建单例 bean(不要在 destroy 方法实现中从 BeanFactory 请求一个 bean!)
...
日志没有给我任何有用的信息,因为堆栈跟踪都在 Spring 库中。我怎样才能找出失败的原因?是资源使用不正确还是bean创建本身有误?
我在 JDK8 中使用 Spring-4。
这里的问题是,由于一些重构,bean 在我的 spring 配置中的 2 个不同点创建,修复是删除重复代码。我有相同的 bean 创建代码:
@Bean(name = MY_BEAN_NAME)
public MyUtilBeanClass getMyBeanClass() {
return new MyUtilBeanClass();
}
... 在另一个 class 中,我进行了一半的重构。
在这种情况下,我的错误是我没有对生成的所有日志文件进行 grep。异常被拆分,然后埋入 2 个不同的日志中,一个用于服务器启动,一个用于应用程序运行时。上述异常被发布到应用程序日志中。其他日志包含相关异常,表明重复创建 bean 失败,修复是删除重复代码。
我正在尝试向我的一个项目添加一个新的 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;
在运行时我得到:
错误 Caused by: org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'my.bean.name': 当这个工厂的单例正在销毁时,不允许创建单例 bean(不要在 destroy 方法实现中从 BeanFactory 请求一个 bean!) ...
日志没有给我任何有用的信息,因为堆栈跟踪都在 Spring 库中。我怎样才能找出失败的原因?是资源使用不正确还是bean创建本身有误?
我在 JDK8 中使用 Spring-4。
这里的问题是,由于一些重构,bean 在我的 spring 配置中的 2 个不同点创建,修复是删除重复代码。我有相同的 bean 创建代码:
@Bean(name = MY_BEAN_NAME)
public MyUtilBeanClass getMyBeanClass() {
return new MyUtilBeanClass();
}
... 在另一个 class 中,我进行了一半的重构。 在这种情况下,我的错误是我没有对生成的所有日志文件进行 grep。异常被拆分,然后埋入 2 个不同的日志中,一个用于服务器启动,一个用于应用程序运行时。上述异常被发布到应用程序日志中。其他日志包含相关异常,表明重复创建 bean 失败,修复是删除重复代码。