Как да дефинирам карта в YAML за POJO?

Java Top

Току що обявих новия курс Learn Spring , фокусиран върху основите на Spring 5 и Spring Boot 2:

>> ПРЕГЛЕД НА КУРСА

1. Общ преглед

В този урок ще разгледаме как можем да използваме свойствата, дефинирани в YAML файл, за да конфигурираме стойности за Map в нашите POJO класове.

2. POJO и YAML

POJO класовете са обикновени стари Java обекти. YAML е удобен за четене структуриран формат на данните, който използва отстъп за обозначаване на вложеност.

2.1. Пример за проста карта

Нека си представим, че работим с онлайн магазин и създаваме услуга, която превежда размерите на дрехите. Отначало продаваме дрехи само във Великобритания. Искаме да знаем за какъв размер в Обединеното кралство се отнася етикетът „S“, „M“, „L“ и т.н. Ние създаваме нашия POJO конфигурационен клас:

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

Забележете @ConfigurationProperties със стойността на префикса . Ще определим нашето картографиране под същата коренна стойност в нашия YAML файл, както можем да видим в следващия раздел.

Също така трябва да помним да активираме свойствата на конфигурацията със следната анотация в нашата Application.class :

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

2.2. YAML конфигурация

Сега добавяме t-shirt-sizeкъм нашата YAML конфигурация.

Можем да използваме следната структура в нашия файл application.yml :

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

Забележете вдлъбнатината и интервалите. YAML използва отстъп, за да посочи вложеност. Препоръчителният синтаксис е две интервали за всяко вложено ниво.

Забележете как използваме simple-mappingтирето, но името на собствеността ни в нашия клас се нарича simpleMapping. Свойствата на YAML с тирета автоматично ще се преведат в еквивалент на камила в кода.

2.3. Пример за по- сложна карта

След успешните ни магазини в Обединеното кралство, сега трябва да обмислим превеждането на размерите в измерванията на други страни. Например, сега искаме да знаем какъв размер е етикетът „S“ във Франция и САЩ. Трябва да добавим още един слой данни към нашата конфигурация.

Можем да променим нашата application.yml с по-сложно картографиране:

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 

Съответното поле в нашия POJO ще бъде карта с карти:

private Map
    
      complexMapping;
    

3. Заключение

В тази статия видяхме как можем да дефинираме прости и по-сложни вложени карти в конфигурационен файл на YAML за прост POJO.

Кодът за тази статия е достъпен в GitHub

Дъно на Java

Току що обявих новия курс Learn Spring , фокусиран върху основите на Spring 5 и Spring Boot 2:

>> ПРЕГЛЕД НА КУРСА