In Java, wie dynamisch Ressourcen Bündel in einer Web-Anwendung neu zu laden?
-
03-07-2019 - |
Frage
Wir verwenden fmt: setBundle ein Ressourcenbündel aus einer Datenbank zu laden (wir erweitert die Klasse Resource zu tun). Wenn wir einen Wert in der Datenbank ändern, müssen wir den Web-Server neu zu laden auf dem Web-App den neuen Wert anzuzeigen.
Gibt es eine einfache Möglichkeit, den neuen Wert zu verwenden, ohne den Web-Server neu zu starten?
(Wir tun nicht will immer den Wert aus der Datenbank nachschlagen, aber wir möchten den Cache ungültig zu machen, beispielsweise durch eine spezielle ‚admin‘ URL Aufruf)
EDIT: Wir sind mit JDK 1.4, also würde ich eine Lösung auf dieser Version bevorzugen. :)
Lösung
Wie andere haben in den Kommentaren darauf hingewiesen, könnten Sie in den Frühling aussehen wollen - vor allem die ReloadableResourceBundleMessageSource .
Andere Tipps
Wenn Sie mit JDK 1.6 können Sie die Callback-Methoden Sie können zunächst eine Klasse erstellen, die von getTimeToLive()
und needsReload()
verwenden in
ReloadableResourceBundleMessageSource
erweitert seine innere Klasse geschützte Methode getProperties
genannt zu belichten. Diese Methode gibt eine gleichzeitige Karte von PropertiesHolder
Objekt. Zweitens sollten Sie eine Bohne dieser erweiterten Klasse in Ihr Web-Konfigurationsklasse konfigurieren. Jetzt können Sie in Ihrer Message Service oder Business-Schicht verwenden. Hier ist die Referenz Link Konfigurieren aufladbare Nachrichtenquelle Bündel