Ändern Sie aktive Profile und aktualisieren Sie die ApplicationContext-Laufzeit in einer Spring Boot-Anwendung.
Ich habe eine Spring Boot-Webanwendung. Die Anwendung wird über Java-Klassen mit dem @ konfigurie@ konfigurierbar Anmerkung. Ich habe zwei Profile eingeführt: "Installieren", "Normal". Wenn das Installationsprofil aktiv ist, wird keine der Beans geladen, die eine DB-Verbindung erfordern. Ich möchte einen Controller erstellen, auf dem der Benutzer die DB-Verbindungsparameter einrichten kann. Wenn dies erledigt ist, möchte ich das aktive Profil von "install" auf "normal" ändern und den Anwendungskontext aktualisieren, damit Spring alle erforderlichen Bean-Vorgänge starten kann DB-Datenquelle.
Ich kann die Liste der aktiven Profile problemlos aus dem Code ändern, aber wenn ich versuche, den Anwendungskontext zu aktualisieren, erhalte ich das folgendeAusnahm:
`java.lang.IllegalStateException:
GenericApplicationContext does not support multiple refresh attempts: just call 'refresh' once`
So boote ich meine Spring Boot App:
`new SpringApplicationBuilder().sources(MyApp.class)
.profiles("my-profile").build().run(args);`
Weiß jemand, wie man eine Spring-Boot-App startet, mit der Sie den App-Kontext mehrmals aktualisieren können?