gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 05:54:39 24 4
gpt4 key购买 nike

我使用depends-on我们的生产系统中的属性来控制 Bean 的关闭顺序。因此,Bean1Bean2 没有编译时依赖性,但应首先关闭它以确保正确运行。我想通过将 Bean1 注入(inject)到我的单元测试中来单独测试 Bean1。因为 Bean2 不是测试的一部分,所以我不希望在运行测试时由 Spring 加载它。是否可以在 Bean1Bean2 的定义之外表达这种依赖关系?

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

最佳答案

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

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

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

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

关于java - 是否可以在 Spring 中的两个 bean 的定义之外定义两个 bean 之间的依赖关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3447974/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com