2016-04-06 3 views
0

In meiner Spring-Anwendung, zum Zeitpunkt der Kontextinitialisierung. Die DB ist nicht verfügbar, sie wird nach einiger Zeit (aufgrund der DB-Redundanz) angezeigt. In diesem Szenario sollte die Initialisierung der Spring-Anwendung verzögert werden oder die Anwendung sollte versuchen, DB-Verbindungen erneut zu versuchen. Wie man das selbe via Spring erreicht.Spring Application Kontextinitialisierung

Srirama.

Antwort

0

Ich würde vorschlagen, die ApplicationContextInitializer zu untersuchen. Es dient dazu, den Kontext festzulegen, bevor die Magie der Frühlingsinitialisierung einsetzt.

Ich bin mir nicht sicher, ob es für Ihren Anwendungsfall entwickelt wurde, aber keine Beans initialisiert werden, wenn die Methode initialize während des Starts aufgerufen wird.

Das Beispiel in den Link befasst sich mit Eigenschaften versehen, aber ich sehe keinen Grund, warum sollten Sie Ihre eigenen manuell erstellt Verbindung nicht erstellen und warten, bis es bereit ist.

0

Danke für die Antwort.

Meine Anwendung wird mit C3P0 initialisiert. Hier versucht C3P0, sich nur für 30 Mal wieder mit der DB zu verbinden (die Standardkonfiguration für acquireRetryAttempts) und sagt danach, dass die Anwendungs-Beans nicht erstellt werden konnten.

Die Konfiguration für acquireRetryAttempts wurde auf -1 geändert, sodass C3P0 erneut versucht, bis die DB-Verbindung erfolgreich hergestellt wurde. Grundsätzlich meine App. Initialisierung sollte verzögert werden, bis die DB auftaucht.

Srirama.

Verwandte Themen