Ich habe versucht, meinen Kopf für Stunden, aber es macht nicht viel Sinn, was ich falsch mache. Ich versuche, ein Map-Objekt in Java aus einer .yml-Datei zu erstellen. Grund ist für eine Karte, ich weiß nicht, was/wie viele Kinder unter "Gegenwart" erscheinen, also habe ich lieber eine dynamische Möglichkeit, ein Kartenobjekt daraus zu erstellen.Lesen yaml config
Unten ist meine .yml-Datei . Ich würde das Schlüssel-Wert-Paar wie unter „present“:
present:
now: LOCAL TESTING
later: testing
Unten ist meine Config-Klasse (alles auf Kommentar ist, was ich versucht habe - in verschiedenen Kombinationen):
//@Data
@Component
@EnableConfigurationProperties
@ConfigurationProperties(prefix = "present")
//@ConfigurationProperties
public class stat {
//@Getter
//@Data
@Value("${present}")
private Map<String, String> present;
//private Map<String, String> present = new HashMap<String, String>();
}
Ich habe versucht, Andere SO-Posts ansehen und ich habe das Gefühl, dass ich es verstehe, aber meine Anwendung Spring Boot (v1.5.8) sieht diesen Wert nicht. Es wirft fortwährend einen Fehler für mich auf oder das Kartenobjekt ist Null (oder wird nicht gefüllt).
Ich weiß, dass ich Werte aus dieser .yml Datei lesen kann, weil, wenn ich versuche, unten einen einzelnen Wert mit einem Code-Schnipsel zu erhalten, es funktioniert:
@Data
@Value("${present.now}")
private String status; // String value "LOCAL TESTING"
Hier sind die anderen Links, die ich habe versucht:
Spring Boot yaml configuration for a list of strings
how to convert yml file to java pojo
Bin ich etwas fehlt offensichtlich? Vielen Dank!
Danke für diese Antwort, aber ich versuche, ein Kartenobjekt daraus zu erstellen.Etwas, das ich in der ursprünglichen Frage nicht erwähnte, war, dass ich die Kinder nicht kenne (abgesehen davon, dass es keine doppelten Schlüssel geben wird), das heißt, ich erstelle lieber ein POJO, das Kartenobjekte dynamisch erstellen kann, anstatt diese Werte hart zu codieren . – rj2700