gpt4 book ai didi

java - 在同一个应用程序上下文中保存同一个 spring bean 的两个不同版本

转载 作者:行者123 更新时间:2023-12-01 14:47:05 27 4
gpt4 key购买 nike

我有一个基于 spring 的应用程序,它使用 bean 来描述某些实体的元数据。随着我的应用程序的增长,元数据也会发生变化。

在我的应用程序发布新版本时,我希望将旧的 Bean 定义与新的 Bean 定义一起保留,并使它们可供程序使用。

我最初的想法是向 bean 定义添加一个名为“Version”的新属性。它的值将对应于发布版本。因此,如果我想更改其中一个实体的元数据定义,我会复制粘贴旧定义,进行所需的更改(例如添加字段)并更新版本字段。

在代码中,我可以轻松地按版本过滤 Bean。

问题:

当然,Spring 不会允许我有两个具有相同 id 的 bean(它不知道我实际上可以通过版本来消除歧义)。看来我不需要在 bean 定义中添加新属性,而是需要在其名称中对版本进行编码。

这是在 Spring 中执行此操作的正确方法吗(我没有找到任何对此的 OOTB 支持)?还有其他模式可以解决这个问题吗?

最佳答案

您不能同时拥有两个类型相同且名称相同的 Bean。您可以在 Bean 名称中包含版本后缀,但这可能会破坏某些 @Autowired 注入(inject)。

Spring 配置文件(在 3.1 中引入)是一种在替代上下文配置之间快速切换的方法,但同时激活其中两个可能会再次导致冲突。

关于java - 在同一个应用程序上下文中保存同一个 spring bean 的两个不同版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15322690/

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