4

Spring Bean があるとします。

@Component
class PluginsProviderImpl implements PluginsProvider {
    private final List<PluginInterface> plugins;
    public PluginsProviderImpl(List<PluginInterface> plugins){
        this.plugins = plugins;
    }
  //...
}

の実装はPluginInterface、コア システムとの実行時依存関係があり、外部から提供されます。場合によっては、それらのいくつかが間違っている可能性があります (たとえば、依存関係が失われているなど)。Spring コンテキストの初期化中にこのようなエラーが発生した場合、アプリケーション全体が起動しません (適切な動作に壊れたプラグインは必要ありません)。

いずれかの実装でエラーが発生した場合、PluginInterfaceそれをスキップして初期化を続行するように、Spring コンテキストの読み込みを制御することは可能ですか?

更新: 詳細説明: Bean を条件付きで追加する必要はありません。エラーのある Bean をスキップしたいのですが、コンテキストの初期化中に問題が発生します。これはプラグインです - 実行時に提供されます。

さらに詳しい説明: プラグインが導入した PluginInterface の実装の 1 つが初期化できない場合でも、アプリケーションを開始したいと考えています。

4

1 に答える 1