是否有可能在Spring中定义两个bean之外的两个bean之间定义依赖关系?

时间:2010-08-10 10:27:10

标签: java spring

我在生产系统中使用depends-on属性来控制bean的关闭顺序。因此,Bean1Bean2没有编译时依赖性,但应首先关闭它以确保正确操作。我想通过将Bean1注入我的单元测试来单独测试Bean2。因为Bean1不是测试的一部分,所以当我运行测试时,我不希望它被Spring加载。是否有可能在Bean2Bean2

的定义之外表达此依赖关系

我提出的hacky解决方案是在我的测试上下文中简单地定义一个虚拟{{1}},它将被加载以满足依赖性,但我想要一个更优雅的解决方案。

1 个答案:

答案 0 :(得分:0)

您可以在其自己的应用程序上下文文件中定义Bean1。将此文件包含在主应用程序上下文中,如下所示:

<import resource="classpath:/applicationContext-bean1.xml" />

现在,创建两个几乎相同的名为“applicationContext-bean1.xml”的文件。将一个存储在主应用程序目录中,另一个存储在test目录中。不要将depends-on放在test目录中的文件中。然后,在运行测试时,请确保类路径包含主目录之前的test目录。

我不知道这是否是一个更优雅的解决方案,但它是解决问题的另一种方法。 :)