我有一个基于 spring 的应用程序,它使用 bean 来描述某些实体的元数据。随着我的应用程序的增长,元数据也会发生变化。
在我的应用程序发布新版本时,我希望将旧的 bean 定义与新的 bean 定义一起保持,并使它们可用于程序。
我最初的想法是在 bean 定义中添加一个名为“Version”的新属性。它的值将对应于一个发布版本。因此,如果我想更改其中一个实体的元数据定义,我会复制粘贴旧定义,进行所需的更改(例如添加一个字段)并更新版本字段。
在代码中,我可以轻松地按版本过滤 bean。
问题:
自然,Spring 不允许我拥有两个具有相同 id 的 bean(它不知道我实际上可以通过版本来消除歧义)。似乎我不需要在 bean 定义中添加新属性,而是需要在其名称中对版本进行编码。
这是在 Spring 中执行此操作的正确方法吗(我没有找到任何 OOTB 支持)?有没有其他模式可以解决这个问题?