Aktualisieren / Aktualisieren der Spring-Konfigurationsdatei, ohne den Servlet-Container neu zu starten
Wie kann ich aktualisieren, Spring Konfigurations-Datei ohne Neustart mein servlet-container?
Ich bin auf der Suche nach eine andere Lösung als JRebel.
InformationsquelleAutor der Frage user64752 | 2009-02-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, es kann nützlich sein, um solch ein Kontext-reload beim testen Ihrer app.
Können Sie versuchen, die
refresh
- Methode eines derAbstractRefreshableApplicationContext
Klasse: es wird nicht aktualisieren Sie Ihre zuvor instanziert Bohnen, aber beim nächsten Aufruf auf den Kontext zurück aktualisiert Bohnen.Und Sie bekommen das Ergebnis
Einen anderen Weg, dies zu erreichen (und vielleicht einfacher), ist die Verwendung der Ansteuerbaren Bean feature von Spring 2.5+
Mit der dynamischen Sprache (groovy, etc.) und im Frühjahr können Sie sogar Ihre Bohnen Verhalten. Haben Sie einen Blick auf die Frühlings-Referenz für die dynamic language:
InformationsquelleAutor der Antwort Guillaume
Ich würde nicht empfehlen Sie zu tun.
Was erwartest du, was passieren singleton-beans, die Ihre Konfiguration geändert? erwarten Sie, dass alle singletons zu laden? aber einige Objekte können Verweise auf, dass singletons.
Finden Sie in diesem Beitrag sowie Automatische Konfiguration durch die Neuinitialisierung im Frühjahr
InformationsquelleAutor der Antwort LiorH
Können Sie einen Blick auf diese http://www.wuenschenswert.net/wunschdenken/archives/138, wo sich einst ändern, was in der Eigenschaften-Datei und speichern Sie die Bohnen werden wieder geladen, mit den neuen Werten.
InformationsquelleAutor der Antwort Rohan S Raju
Für diejenigen, stolpern auf das neulich -- die aktuellen und modernen Weg, um dieses problem zu lösen, ist die Verwendung Spring Boot ist Cloud-Config.
Fügen Sie einfach die @RefreshScope annotation auf Ihre aktualisierbare Bohnen und @EnableConfigServer auf deinen main/configuration.
So, zum Beispiel, ist diese Controller-Klasse:
Wird der neue Wert wird zurückgegeben von Ihrer
message
String-Eigenschaft für die/message
Endpunkt, wenn Ihre Konfiguration aktualisiert wird.Finden Sie auf der offiziellen Spring Guide für die Zentrale Konfiguration Beispiel für weitere details zur Implementierung.
InformationsquelleAutor der Antwort Dovmo