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 つが初期化できない場合でも、アプリケーションを開始したいと考えています。