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 失败,修复是删除重复代码。