Hvordan defineres et kort i YAML til en POJO?

Java Top

Jeg har lige annonceret det nye Lær foråret kursus med fokus på det grundlæggende i Spring 5 og Spring Boot 2:

>> KONTROLLER KURSEN

1. Oversigt

I denne vejledning gennemgår vi, hvordan vi kan bruge egenskaber defineret i en YAML-fil til at konfigurere værdier til en Kort i vores POJO-klasser.

2. POJO og YAML

POJO-klasser er almindelige gamle Java-objekter. YAML er et menneskeligt læsbart struktureret dataformat, der bruger indrykning for at angive indlejring.

2.1. Enkel Kort Eksempel

Lad os forestille os, at vi kører en onlinebutik, og vi opretter en service, der oversætter tøjstørrelser. Først sælger vi kun tøj i Storbritannien. Vi vil vide, hvilken størrelse UK betegner som "S", "M", "L" og så videre. Vi opretter vores POJO-konfigurationsklasse:

@ConfigurationProperties (præfiks = "t-shirt-størrelse") offentlig klasse TshirtSizeConfig {privat kort simpleMapping; public TshirtSizeConfig (Map simpleMapping) {this.simpleMapping = simpleMapping; } // getters og settere.} 

Læg mærke til @ConfigurationProperties med præfiks værdi. Vi definerer vores kortlægning under den samme rodværdi i vores YAML-fil, som vi kan se i det næste afsnit.

Vi skal også huske at aktivere konfigurationsegenskaber med følgende kommentar på vores Application.class:

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

2.2. YAML-konfiguration

Nu tilføjer vi t-shirt-størrelse til vores YAML-konfiguration.

Vi kan bruge følgende struktur i vores ansøgning.yml fil:

t-shirt-størrelse: enkel kortlægning: XS: 6 S: 8 M: 10 L: 12 XL: 14

Bemærk indrykningen og mellemrummene. YAML bruger indrykning for at angive indlejring. Den anbefalede syntaks er to mellemrum for hvert indlejrede niveau.

Læg mærke til, hvordan vi bruger enkel kortlægning med bindestreg, men vores ejendomsnavn i vores klasse kaldes simpleMapping. YAML-egenskaber med bindestreger vil automatisk blive oversat til kamelæskeækvivalenten i kode.

2.3. Mere komplekst Kort Eksempel

Efter vores succesrige britiske butikker skal vi nu overveje at oversætte størrelser til andre landes målinger. For eksempel vil vi nu vide, hvilken størrelse der er mærket “S” i Frankrig og USA. Vi skal tilføje endnu et lag af data til vores konfiguration.

Vi kan ændre vores ansøgning.yml med en mere kompleks kortlægning:

t-shirt-størrelse: kompleks kortlægning: 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 os: 8 XL: uk: 14 fr: 42 os: 10 

Det tilsvarende felt i vores POJO vil være et kort over kort:

privat kort kompleks Kortlægning;

3. Konklusion

I denne artikel så vi, hvordan vi kunne definere enkle og mere komplekse indlejrede kort i en YAML-konfigurationsfil til en simpel POJO.

Koden til denne artikel er tilgængelig på GitHub

Java bund

Jeg har lige annonceret det nye Lær foråret kursus med fokus på det grundlæggende i Spring 5 og Spring Boot 2:

>> KONTROLLER KURSEN

$config[zx-auto] not found$config[zx-overlay] not found