:私は、このGitの問題を通して読んでいたhttps://github.com/spring-projects/spring-boot/issues/7589 Javaの春ブーツに関して、スタートアップ時にクラッシュバイパスへの道を把握しようとしています。
ショートバージョンあなたはMongoのクライアントを作成するためのコードが含まれている場合ということです。
@Bean
public MongoOperations mongoOperations() {
try {
//This runs an operation which uses my credentials to login to the db
return new MongoTemplate(mongoDbFactory());
} catch (Exception e){
e.printStackTrace();
return null;
}
}
そして、MongoDBはそれが接続していない問題を抱えているが、MongoDBのがされている場合だろう、実行されていない実行している、春は再試行すると、再び失敗した後、すべてのスタートアップ・シーケンスをクラッシュし、停止します。
DBに対して、この最初のクラッシュ/チェックがアップされて、それを参照するすべてのコードをコメントアウト以外の実行中のバイパスへの道がある:私の質問はこれですか?私は、例外のどこかの低レベルをキャッチし、それを通過させることはできますか?
MongoDBのがオプションであるような方法でアプリケーションの振る舞い場合は、いくつかのオプションがあります。
既存のアプリケーションを移行する場合は、最初から最も簡単にすることです自動設定を除外し、インフラストラクチャを自分で作成します。あなたが返すように指示しました方法ではありませんnull
から、@Bean
この方法は非常に厄介です。むしろあなたはなまけクライアントを作成することができ、いくつかのサービスを持つことができ、あなたがそのサービスを通過するのMongoDBのあなたのオプションの使用状況を更新することができます。サービスに関係なく作成されますが、必要に応じてのみ、基盤となるインフラストラクチャを作成します。
他のオプションは、プロファイルを使用することです。主なユースケースは、MongoDBのが利用可能であるということであるならば、作成application-nomongo.properties
、使用して自動構成を排除する(そのような何か)spring.autoconfigure.exclude
プロパティを。アプリケーションはモンゴなしで起動すると、あなたは、有効にすることができnomongo
、プロファイルと自動設定をバックオフになります。それが有効になっていない場合は、Mongo
Beanは春ブーツによって作成されます。