Wie verwende ich List Umgebungsvariablen in Spring Boots Application.yml?
Posted: 02 Mar 2025, 14:40
Ich verwende Spring Start und versuche, Umgebungsvariablen in List Format in der Datei application.yml zu deklarieren. kann ich die Anwendung erfolgreich ausführen. Daher denke ich, dass es keine Bindungsmethode für Listentypen gibt, aber ich verstehe nicht, warum. Es scheint keinen signifikanten Unterschied nach der offiziellen Dokumentation zu geben.
Wie kann ich es lösen?>
Code: Select all
// application.yml
kis:
domain: ${KIS_DOMAIN:domain}
appkey:
- ${KIS_APPKEY_1:appkey}
- ${KIS_APPKEY_2:appkey}
appsecret:
- ${KIS_APPSECRET_1:appsecret}
- ${KIS_APPSECRET_2:appsecret}
web-socket-domain: ${KIS_WEBSOCKET_DOMAIN:domain}
< /code>
// KisProperties.java
@Component
@ConfigurationProperties(prefix = "kis")
@Getter
@Setter
@ToString
public class KisProperties {
private String domain;
private String webSocketDomain;
private List appkey;
private List appsecret;
...
}
< /code>
Wenn ich diesen Code auf Spring Startversion 3.4.0 ausführe, erhalte ich den folgenden Fehler: < /p>
Description:
Binding to target [Bindable@651a3e01 type = java.util.List, value = 'provided', annotations = array[[empty]], bindMethod = [null]] failed:
Property: kis.appkey[1]
Value: "===hidden==="
Origin: System Environment Property "KIS_APPKEY_1"
Reason: The elements [kis.appkey[1],kis.appkey[2]] were left unbound.
Property: kis.appkey[2]
Value: "===hidden==="
Origin: System Environment Property "KIS_APPKEY_2"
Reason: The elements [kis.appkey[1],kis.appkey[2]] were left unbound.
Action:
Update your application's configuration
< /code>
Es gibt aus, dass es im Listenformat nicht binden kann. @Value ("$ {kis.appsecret [0]}") Private AppSecret0
Wie kann ich es lösen?>