Ich habe eine Spring-Boot-Anwendung, die eine Menge von Eigenschaften in einer Datei .yml
definiert hat. Ich bewege mich davon weg, die Eigenschaften in einer Datei zu haben, um sie in einer Wolke zu haben, deshalb benutze ich die Schlüssel/Wert-Funktion im Frühling Cloud Consul.Korrekter Weg zum Laden von Werten/Eigenschaften aus der Feder Cloud Consul
Ich bin in der Lage, einen Wert für einen bestimmten Schlüssel von Konsul abzurufen, aber der einzige Weg, ich dokumentiert habe gesehen, und nur so, wie ich in der Lage gewesen, es zu tun ist wie so:
@Autowired
private Environment env;
@RequestMapping("/test")
String home() {
return env.getProperty("test.property");
}
Das ist in Ordnung und gut, aber ich einige bestehenden Klassen, die noch festgelegt sind Eigenschaften, die alte Art und Weise zu laden:
@Value("${test.property}")
String testProperty;
nach dem Hinzufügen der Abhängigkeit für Frühjahr Cloud Konsul zu meinem Projekt, erhalte ich neue Fehler zu sagen, dass alle diese Eigenschaften nicht sein aufgelöst. Ich nehme an, es liegt daran, dass Spring Boot die Consul-Abhängigkeit erkennt und entweder die Yml-Datei oder Teile davon ignoriert.
Gibt es eine Möglichkeit, diese Eigenschaften von Konsul laden zu lassen, ohne Code in den Klassen ändern zu müssen? Oder muss ich diese Klassen ändern, um dem Beispiel zu folgen, das das Objekt env
verwendet?
Auch ein weiterer Einblick in die Funktionsweise von Federwolkenconsul mit Federmanschette für diesen speziellen Zweck wäre sehr willkommen. Es gibt nicht viel Dokumentation darüber.
Wenn Sie es mit dem Spring Cloud Config Client verwenden, sollte der '@ Value' einfach funktionieren. –
@ M.Deinum Ich bin nicht, ich benutze Spring Cloud Consul – Seephor
Das ist die Server-Seite, Frühling Cloud Consul kann ziemlich leicht mit Feder Cloud-Konfiguration integrieren und dann bekommen Sie out-of-the-Box, was Sie wollen. Siehe http://cloud.spring.io/spring-cloud-consul/spring-cloud-consul.html (der letzte Abschnitt). –