Java Spring实例化了一个bean两次

Java Spring实例化了一个bean两次,java,spring,javabeans,Java,Spring,Javabeans,我的businessAplicationContext.xml中有几个bean,在添加一个名为: 此TcmLogManager只是实例化java.util.logging.StreamHandler,以便将一些日志条目存储在内存中 问题是Spring将这个bean实例化了2次。。。虽然只有1个定义(如果我用不同的id复制.xml中的行,它将创建4个对象…等等…) 我还将范围定义为“singleton”,但它不起作用 有什么想法吗?从您描述问题的方式来看,最有可能的原因是,bean定义所在的上下

我的businessAplicationContext.xml中有几个bean,在添加一个名为:

此TcmLogManager只是实例化java.util.logging.StreamHandler,以便将一些日志条目存储在内存中

问题是Spring将这个bean实例化了2次。。。虽然只有1个定义(如果我用不同的id复制.xml中的行,它将创建4个对象…等等…)

我还将范围定义为“singleton”,但它不起作用


有什么想法吗?

从您描述问题的方式来看,最有可能的原因是,bean定义所在的上下文文件在创建ApplicationContexts时被使用了两次——可能是在同一个上下文中使用了两次,也可能是在两个不同的上下文中使用了两次。当Spring启动时,它会在信息级别记录特定BeanFactory中存在的所有bean。您可以查看该列表,以确定哪些bean位于何处。在日志中搜索短语“defining beans”以找到它。

检查上下文文件中的
或其他扫描标记。这些强制Spring扫描源文件中的组件类。如果需要一次以上的扫描,则应使用排除/包括过滤器修剪扫描。您可以使用嵌套的xml节点定义过滤器。
正如@adarshr所指出的,第二个构造函数调用可以是一个代理bean,用于链接AOP方面。

您能粘贴stacktrace和一些其他信息吗?很难弄清楚当前信息是怎么回事。你能试着(用log语句)放一个构造函数吗在这个bean和任何其他bean中,并确认所述bean被实例化了两次,而其他bean没有实例化?您是否在spring配置中的某个地方设置了AOP代理?您能否设置日志级别以调试并使用日志输出更新问题?@Ryan Stewart,我已经检查了“定义bean”列表,所有的豆子都以正确的顺序出现。。。就一次。创建bean时的工作流似乎没有问题,它首先定义businessBeanFactory,然后在hibernate初始化之前使用所有bean创建一个应用程序上下文。以下是日志:[11/08/11 9:43:40:995 ART]0000002a ServletWrappe I SRVE0242I:[TIMAdminEAR][TIMAdminWeb][FilterProxyServlet]:Inicialización satisfactoria。[11/08/11 9:43:45:691 ART]0000002e ServletWrappe I SRVE0242I:[TIMAdminEAR][TIMAdminWeb][loginServlet]