Bean を使用して特定のエンティティのメタデータを記述するスプリング ベースのアプリケーションがあります。アプリケーションが大きくなるにつれて、メタデータも変更されます。
アプリケーションの新しいリリース時に、古い Bean 定義を新しいものと一緒に維持し、それらをプログラムで使用できるようにしたいと考えています。
私の最初のアイデアは、「バージョン」と呼ばれる新しいプロパティを Bean 定義に追加することでした。その値は、リリース バージョンに対応します。したがって、エンティティの 1 つのメタデータ定義を変更する場合は、古い定義をコピーして貼り付け、必要な変更 (フィールドの追加など) を行い、バージョン フィールドを更新します。
コードでは、Bean をバージョンで簡単にフィルタリングできます。
問題:
当然のことながら、Spring は同じ ID を持つ 2 つの Bean を持つことを許可しません (バージョンによって実際に明確にできるかどうかはわかりません)。Bean 定義に新しいプロパティを追加する代わりに、その名前でバージョンをエンコードする必要があるようです。
これはSpringでそれを行う適切な方法ですか(これに対するOOTBサポートは見つかりませんでした)? この問題を解決する他のパターンはありますか?