Spring Dependency Injection停止工作

时间:2012-11-27 10:33:50

标签: java spring dependencies inversion-of-control code-injection

我正在与一个由10多名Java开发人员组成的团队在Web应用程序上工作。这是一个大项目(2岁),自昨晚以来我们遇到了一个问题:一些bean(2个bean)在使用时会导致NullPointerException(好像IoC不再起作用了)。

问题是,两天前一切正常,我在这两天内读过每一次提交,但是Spring Confugration文件没有变化。

我知道有时候如果你通过Spring动态注入一个bean并通过新的操作数实例化它,它会给出一个NPE,但项目中没有这个迹象。

所有开发人员在本地计算机上都没有这个问题,但在CI服务器上,它运行良好一段时间然后停止,直到我们重新启动计算机(而不是服务器)。有谁知道如何处理这个问题?服务器启动根本不显示任何错误。

更新

  • 服务器上下文初始化绝对没有错误(也没有警告),并以成功消息结束。

  • 我已经检查了所有对bean setter的调用:没有使用过。

  • 通过配置文件获取bean,没有@Autowired。

  • 我实际上已经在整个项目中搜索了新的操作数,花了差不多两个小时来检查每个操作数,但没有一个bean用新的操作数进行实例化。

2 个答案:

答案 0 :(得分:2)

我的猜测是有人叫“新”创建一个bean,这意味着它不再受Spring bean工厂的控制,但不知何故它依赖于DI。如果您使用注释来连接资源,则更有可能。

你自己说过:多年来一直很好。春天没有突然失败。这10个以上的Java开发人员中的一个更有可能是新的,或者他们认为Spring并不了解Spring。

答案 1 :(得分:0)

问题是由于JavaMelody和Spring AOP之间的冲突。为了解决这个问题,我们必须禁用JavaMelody一段时间,直到我们知道问题的根源。

来自JavaMelody常见问题解答(更多信息)

如果有的话,你的应用程序在all-in-one monitoring-spring.xml和AOP或@Autowired之间存在冲突,那么你可以使用monitoring-spring-datasource.xml文件,而不是监视spring.xml。该文件仅包含数据源后处理器和SpringDataSourceFactoryBean的示例。