2016-03-18 5 views
1

@EnableBinding dreht Klasse in @Configuration, und es ist documented dass:Wie @RefreshScope mit @ EnableBinding-annotierten Klassen verwenden?

@RefreshScope Werke (technisch) auf einer @Configuration Klasse, aber es könnte zu überraschendem Verhalten führen: z Es bedeutet nicht, dass alle @Beans, die in dieser Klasse definiert sind, selbst @RefreshScope sind. Insbesondere kann alles, was von diesen Beans abhängt, nicht darauf angewiesen sein, dass sie aktualisiert werden, wenn eine Aktualisierung initiiert wird, es sei denn, sie befindet sich in @RefreshScope (in dem sie bei einer Aktualisierung neu erstellt wird und ihre Abhängigkeiten erneut injiziert werden) aus der aktualisierten @ Konfiguration neu initialisiert.

Also nur eine praktische Frage: Gibt es noch eine Möglichkeit, einige Receiver-Klasse mit @EnableBinding annotiert zu aktualisieren? Ich denke, es würde nicht vom Rahmen behandelt werden und sollte mit einem benutzerdefinierten @EventListener

Antwort

0

Für unsere einfachsten Beispiele implementiert werden, verwenden wir die @Configuration Klassen, in denen @EnableBinding wie die Business-Logik Bohnen erklärt selbst, die durch die ermöglicht wird, Tatsache, dass @EnableBinding ist ein und daher ein @Component. Da Sie @EnableBinding auf der Empfänger-Bean selbst nicht benötigen, würde ich zum Beispiel die Logik in eine Bean mit @RefreshScope annotieren. @EnableBinding selbst kann nicht aktualisiert werden, obwohl die Kanäle bei Start/Stopp ungebunden/zurückspringen würden.

Verwandte Themen