gpt4 book ai didi

java - 区分从不同的spring配置文件加载的bean

转载 作者:行者123 更新时间:2023-11-30 09:58:27 29 4
gpt4 key购买 nike

我们的项目基于 Spring IoC,它提供了简单的可扩展性,这意味着我们的项目的功能通过我们所说的扩展(或插件)进行了扩展,这些扩展(或插件)提供了一些额外的 Spring xml 配置文件 + 新代码。

问题是我必须以某种方式区分从不同 xml 文件加载的 bean。

示例:两个扩展(我们称它们为 A 和 B)安装了两个额外的 spring 文件:A.xml 和 B.xml。这两个文件都定义了同一个 Java 类的 bean。框架将这个类的所有 beans(使用 Autowiring )加载到某个工厂,然后在特定算法中使用这个 beans 列表。但是它应该能够知道一个 bean 是由什么扩展定义的。

当然我可以为 bean 添加一个额外的必需属性(例如扩展的名称或代码),然后扩展开发人员必须为每个 bean 定义填充它,但这很容易出错:该属性应该是对于某个特定扩展的所有 beans 都是一样的,而它是为每个 bean 填充的。我正在寻找更简洁的解决方案。

谢谢。

最佳答案

听起来您的每个扩展都应该在其自己的应用程序上下文中定义。这些上下文中的每一个都将共享一个父上下文,这将是您的应用程序的“核心”。

这应该可以让您更轻松地了解哪个 bean 来自哪个 bean,因为您必须遍历每个上下文才能开始获取 bean。此外,通过将每个扩展隔离在其自己的上下文中,您可以减少 bean 冲突的可能性。

关于java - 区分从不同的spring配置文件加载的bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/961973/

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