代码之家  ›  专栏  ›  技术社区  ›  Edward Dale

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

  •  1
  • Edward Dale  · 技术社区  · 14 年前

    我用 depends-on 属性在我们的生产系统中控制bean的关闭顺序。因此, Bean1 没有编译时依赖项 Bean2 但应先停机,以确保正常运行。我想测试一下 蚕豆1号 把它单独注入到我的单元测试中。因为 蚕豆2号 不是测试的一部分,我不希望在运行测试时由弹簧加载。是否可以在定义之外表达这种依赖关系? 蚕豆1号 蚕豆2号 ?

    我提出的黑客解决方案是简单地定义一个虚拟对象 蚕豆2号 在我的测试上下文中,它将被加载以满足依赖性,但我希望有一个更优雅的解决方案。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Thierry Roy    14 年前

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

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

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

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