私は、各アプリケーションが独自の war ファイルにある Java EE 環境で作業しています。各アプリケーション war ファイルの WEB-INF/lib には、すべてのアプリケーションで共有される共通の jar があります。この共通の jar には、コード内の多くのポイントからアクセスされるいくつかのシングルトンが含まれています。war ファイルの境界により、各アプリケーションには独自のシングルトン インスタンスがあります。各アプリケーションでいくつかのシングルトンを異なる方法で構成したいので、これが現在の運用方法です。
現在、OSGi 環境に移行しています。各バンドルには独自のクラス ローダーがあるため、このソリューションは機能しなくなります。そのため、バンドル「common.jar」にある MySingleton にバンドル「appA.jar」またはからアクセスしようとすると、 bundle "appB.jar" 同じインスタンスを取得します。
バンドルごとにシングルトンの異なるインスタンスが「必要」であることを思い出してください。(皮肉に聞こえるかもしれませんが)
理想的な解決策は、これらのシングルトンに依存しないようにコードを修正することだと思いますが、スケジュールが厳しいため、バンドル全体のシングルトンを使用できるようにする何らかの移行ソリューションを提案できるかどうか疑問に思っていました。それらのそれぞれは、バンドルごとに構成できます。