Spring hat den schönen Mechanismus PropertyPlaceholderConfigurer für das Injizieren von Werten wie Timeouts, JDBC Urls und so weiter in Spring Beans für Konfigurationszwecke. Gibt es eine vernünftige Möglichkeit, Konfigurationswerte zu handhaben, die sich zur Laufzeit ändern können?Spring: wie transparente Laufzeitkonfiguration der veränderbaren Eigenschaft zu tun
UPDATE: Mit Spring 3.1 gibt es eine gute Möglichkeit, nicht statische Konfigurationsquellen wie die Datenbank über PropertySource s einzubinden. Einige ApplicationContexte stellen einen Refresh-Mechanismus bereit, der prinzipiell in der Lage ist, Konfigurationswerte zu ändern. Es stoppt jedoch zuerst die Anwendung, erstellt dann alle Beans neu und startet dann den Anwendungskontext erneut. Für unsere Zwecke würde ich jedoch einen Weg brauchen, dies transparent zu machen, so dass der Server aktuell laufende Anfragen korrekt behandelt.
Eine andere Idee, dies zu tun, wäre ein benutzerdefinierter Bereich, der neue Objekte erstellt, wenn sich die Konfiguration ändert. Leider verwendet die dem Scope zur Verfügung gestellte ObjectFactory eine vorverarbeitete Bean-Definition, so dass die Platzhalter nicht neu aus der Konfiguration gelesen werden. Somit haben die erstellten Objekte die gleiche Konfiguration. :-(
Wahrscheinlich wäre es ein PropertyOverrideConfigurer http://StackOverflow.com/a/595201/21499, aber ich denke, der Property Override-Mechanismus ist ziemlich umständlich zu verwenden und fehleranfällig. –