Wie definiere ich eine Karte in YAML für ein POJO?

Java Top

Ich habe gerade den neuen Learn Spring- Kurs angekündigt , der sich auf die Grundlagen von Spring 5 und Spring Boot 2 konzentriert:

>> Überprüfen Sie den Kurs

1. Übersicht

In diesem Tutorial erfahren Sie, wie Sie in einer YAML-Datei definierte Eigenschaften verwenden können, um Werte für eine Map in unseren POJO-Klassen zu konfigurieren .

2. POJO und YAML

POJO-Klassen sind einfache alte Java-Objekte. YAML ist ein für Menschen lesbares strukturiertes Datenformat, das Einrückungen verwendet, um die Verschachtelung anzuzeigen.

2.1. Einfache Karte Beispiel

Stellen wir uns vor, wir betreiben einen Online-Shop und schaffen einen Service, der Kleidungsgrößen übersetzt. Zunächst verkaufen wir Kleidung nur in Großbritannien. Wir möchten wissen, auf welche britische Größe sich das Label „S“, „M“, „L“ usw. bezieht. Wir erstellen unsere POJO-Konfigurationsklasse:

@ConfigurationProperties(prefix = "t-shirt-size") public class TshirtSizeConfig { private Map simpleMapping; public TshirtSizeConfig(Map simpleMapping) { this.simpleMapping = simpleMapping; } //getters and setters.. } 

Beachten Sie die @ConfigurationProperties mit dem Präfix Wert. Wir werden unsere Zuordnung unter demselben Stammwert in unserer YAML-Datei definieren, wie wir im nächsten Abschnitt sehen können.

Wir müssen auch daran denken, Konfigurationseigenschaften mit der folgenden Anmerkung in unserer Application.class zu aktivieren :

@EnableConfigurationProperties(TshirtSizeConfig.class) public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }

2.2. YAML-Konfiguration

Jetzt erweitern wir t-shirt-sizeunsere YAML-Konfiguration.

Wir können die folgende Struktur in unserer application.yml- Datei verwenden:

t-shirt-size: simple-mapping: XS: 6 S: 8 M: 10 L: 12 XL: 14

Beachten Sie die Einrückung und die Leerzeichen. YAML verwendet Einrückungen, um die Verschachtelung anzuzeigen. Die empfohlene Syntax besteht aus zwei Leerzeichen für jede verschachtelte Ebene.

Beachten Sie, wie wir simple-mappingmit dem Bindestrich arbeiten, aber unser Eigenschaftsname in unserer Klasse heißt simpleMapping. YAML-Eigenschaften mit Bindestrichen werden automatisch in das Kamelfalläquivalent im Code übersetzt.

2.3. Komplexere Karte Beispiel

Nach unseren erfolgreichen Geschäften in Großbritannien müssen wir nun überlegen, Größen in die Maße anderer Länder zu übersetzen. Zum Beispiel möchten wir jetzt wissen, wie groß das Label „S“ in Frankreich und den USA ist. Wir müssen unserer Konfiguration eine weitere Datenschicht hinzufügen.

Wir können unsere application.yml mit einer komplexeren Zuordnung ändern :

t-shirt-size: complex-mapping: XS: uk: 6 fr: 34 us: 2 S: uk: 8 fr: 36 us: 4 M: uk: 10 fr: 38 us: 6 L: uk: 12 fr: 40 us: 8 XL: uk: 14 fr: 42 us: 10 

Das entsprechende Feld in unserem POJO ist eine Karte mit Karten:

private Map
    
      complexMapping;
    

3. Fazit

In diesem Artikel haben wir gesehen, wie wir einfache und komplexere verschachtelte Karten in einer YAML-Konfigurationsdatei für ein einfaches POJO definieren können.

Der Code für diesen Artikel ist auf GitHub verfügbar

Java unten

Ich habe gerade den neuen Learn Spring- Kurs angekündigt , der sich auf die Grundlagen von Spring 5 und Spring Boot 2 konzentriert:

>> Überprüfen Sie den Kurs