Angenommen, ich habe diese application.yml
definiert:Wie man komplexe Liste für Anwendung Yml im Frühling boot definiert?
spring:
profiles.active: development
---
spring:
profiles: development
logging:
level:
org.springframework.web: DEBUG
org.hibernate: ERROR
storage:
RemoteStorage:
name: "Server 1"
user: "test"
passwd: "test"
host: "163.218.233.106"
LocalStorage:
name: "Server 2"
user: "test2"
passwd: "test2"
host: "10.10.0.133"
---
Die storage
ist eine benutzerdefinierte Eigenschaften, die ich es Last so sein wollen:
@Value("${storage}")
private List<Storage> AvailableStorage = new ArrayList<>();
Apologies ich ein Anfänger mit Spring-Framework bin. Was ich versuchte zu tun, ist die RestController
gelesene entsprechende Konfiguration basierend auf den Parametern von Anfragen, d. H. Anforderungen wie ?storage=RemoteStorage
wird die RemoteStorage
Konfig verwenden.
Um also in yml definiert mehrere Server zu haben. Ich kann es nicht wie den in der Frage definieren. Stattdessen muss ich eine Liste haben, wie ein Zeiger auf verschiedene 'mapProp' zeigt? Aus Ihrem Beispiel sieht es so aus, als ob ich etwas mehrdeutige 'getMapProp1',' getMapProp2' usw. für mehrere Server in 'MyProps' definiere. – user1510539
.yaml-Einträge sind nichts als Eigenschaftsschlüsselwerte. Bitte überprüfen Sie oben. Ich habe hinzugefügt, wie die Einträge im Falle von application.properties aussehen werden. In Ihrem Fall haben Sie also localStorage und remoteStorage map definiert. Wenn Sie Beans basierend auf der Umgebung laden möchten, können Sie @ConditionalOnProperty verwenden. Überprüfen Sie http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-auto-configuration.html#boot-features-property-conditions – abaghel
Hmm, ich dachte, es wäre eine Möglichkeit, Werte Klassen zuzuordnen. Aber das ist in Ordnung, ich könnte es immer noch mit deiner Herangehensweise abbilden. Vielen Dank:) – user1510539