{"id":59780,"date":"2020-08-18T15:09:14","date_gmt":"2020-08-18T15:09:14","guid":{"rendered":"https:\/\/www.baeldung.com\/?p=85813"},"modified":"2020-08-18T15:09:14","modified_gmt":"2020-08-18T15:09:14","slug":"how-to-define-a-map-in-yaml-for-a-pojo","status":"publish","type":"post","link":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/2020\/08\/18\/how-to-define-a-map-in-yaml-for-a-pojo\/","title":{"rendered":"How to Define a Map in YAML for a POJO?"},"content":{"rendered":"<p class=\"syndicated-attribution\"><meta name= \\\"keywords \\\" content= \\\"\u96fb\u5b50\u8a08\u7b97\u6a5f, \u6559\u80b2, IT \u96fb\u8166\u73ed,\u96fb\u8166\u88dc\u7fd2\uff0c \u96fb\u8166\u73ed\uff0c \u5bb6\u6559\uff0c \u79c1\u4eba\u8001\u5e2b\uff0c \u8cc7\u8a0a\u6280\u8853\uff0c \u7a0b\u5e8f\u8a2d\u8a08\uff0c \u96fb\u5b50\u8a08\u7b97\u6a5f\uff0c \u904a\u6232\uff0c \u860b\u679c\uff0c \u96fb\u5f71\uff0c \u8a08\u7b97\u6a5f\uff0c\u7de8\u78bc\uff0c Java\uff0c C\/C++\uff0c JavaScript\uff0c PHP\uff0c HTML\uff0c CSS\uff0c MySQL\uff0c mobile\uff0c Android\uff0c \u52d5\u6f2b\uff0c Python\uff0c teacher\uff0c \u88dc\u7fd2\uff0c \u96fb\u8166\u88dc\u7fd2 \u8cc7\u8a0a, \u7535\u5b50\u8ba1\u7b97\u673a, IT ,Game, apple, movie, Computer,student,Java,\u6559\u80b2, ,\u5b66\u751f, \u5b66\u4e60, learn, \u6559\u5b66,  Android, apple,anime, animation, \u4fe1\u606f\u6280\u672f, \u7a0b\u5e8f\u8bbe\u8ba1, \u79fb\u52a8\u7535\u8bdd, \u8cc7\u8a0a\u79d1\u6280,Game, Jeu, Juego,Call Of Duty ,\u4f7f\u547d\u53ec\u559a , \u6e38\u620f, \u7535\u5b50\u6e38\u620f,, \u591a\u4eba\u7535\u5b50\u6e38\u620f, \u7f51\u7edc\u6e38\u620f\uff0conline\uff0conline game, \u624b\u673a\u6e38\u620f, mobile \\\"><\/p>\n<h2 data-id=\"overview-6\">1. Overview<\/h2>\n<div class=\"bd-anchor\" id=\"overview-6\"><\/div>\n<p>In this tutorial, we&#8217;ll walk through how we can use properties defined in a YAML file to configure values for a <em>Map<\/em> in our POJO classes.<\/p>\n<h2 data-id=\"pojo-and-yaml\">2. POJO and YAML<\/h2>\n<div class=\"bd-anchor\" id=\"pojo-and-yaml\"><\/div>\n<p>POJO classes are <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/java-pojo-class\">Plain Old Java Objects<\/a>. YAML is a human-readable structured data format that uses indentation to indicate nesting.<\/p>\n<h3 data-id=\"1-simple-map-example\">2.1. Simple <em>Map<\/em> Example<\/h3>\n<div class=\"bd-anchor\" id=\"1-simple-map-example\"><\/div>\n<p>Let&#8217;s imagine that we are running an online store, and we are creating a service that translates clothing sizes. At first, we are only selling clothes in the UK. We want to know what UK size the label &#8220;S&#8221;, &#8220;M&#8221;, &#8220;L&#8221; and so on refers to. We create our POJO configuration class:<\/p>\n<pre><code class=\"language-java\">@ConfigurationProperties(prefix = \"t-shirt-size\")\r\npublic class TshirtSizeConfig {\r\n    private Map&lt;String, Integer&gt; simpleMapping;\r\n    public TshirtSizeConfig(Map&lt;String, Integer&gt; simpleMapping) {\r\n        this.simpleMapping = simpleMapping;\r\n    }\r\n    \r\n    \/\/getters and setters..\r\n}\r\n<\/code><\/pre>\n<p>Notice the <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/configuration-properties-in-spring-boot\"><em>@ConfigurationProperties<\/em><\/a> with the <em>prefix<\/em> value. We&#8217;ll define our mapping under that same root value in our YAML file, as we can see in the next section.<\/p>\n<p>We also need to remember to enable configuration properties with the following annotation on our <em>Application.class<\/em>:<\/p>\n<pre><code class=\"language-java\">@EnableConfigurationProperties(TshirtSizeConfig.class)\r\npublic class DemoApplication {\r\n    public static void main(String[] args) {\r\n        SpringApplication.run(DemoApplication.class, args);\r\n    }\r\n}<\/code><\/pre>\n<h3 data-id=\"2-yaml-configuration\">2.2. YAML Configuration<\/h3>\n<div class=\"bd-anchor\" id=\"2-yaml-configuration\"><\/div>\n<p>Now we add <code>t-shirt-size<\/code> to our YAML configuration.<\/p>\n<p>We can use the following structure in our <em>application.yml<\/em> file:<\/p>\n<pre><code class=\"language-yaml\">t-shirt-size:\r\n  simple-mapping:\r\n    XS: 6\r\n    S:  8\r\n    M:  10\r\n    L:  12\r\n    XL: 14<\/code><\/pre>\n<p>Notice the indentation and the spaces. YAML uses indentation to indicate nesting. The recommended syntax is two spaces for each nested level.<\/p>\n<p>Notice how we&#8217;re using <code>simple-mapping<\/code> with the dash, but our property name in our class is called <code>simpleMapping<\/code>.\u00a0 YAML properties with dashes will automatically translate to the camel-case equivalent in code.<\/p>\n<h3 data-id=\"3-more-complex-map-example\">2.3. More Complex <em>Map<\/em> Example<\/h3>\n<div class=\"bd-anchor\" id=\"3-more-complex-map-example\"><\/div>\n<p>After our successful UK shops, we now need to consider translating sizes to other countries&#8217; measurements. For example, we now want to know what size is the label &#8220;S&#8221; in France and the US. We need to add another layer of data to our configuration.<\/p>\n<p>We can alter our <em>application.yml<\/em> with a more complex mapping:<\/p>\n<pre><code class=\"language-yaml\">t-shirt-size:\r\n  complex-mapping:\r\n    XS:\r\n      uk: 6\r\n      fr: 34\r\n      us: 2\r\n    S:\r\n      uk: 8\r\n      fr: 36\r\n      us: 4\r\n    M:\r\n      uk: 10\r\n      fr: 38\r\n      us: 6\r\n    L:\r\n      uk: 12\r\n      fr: 40\r\n      us: 8\r\n    XL:\r\n      uk: 14\r\n      fr: 42\r\n      us: 10\r\n<\/code><\/pre>\n<p>The corresponding field in our POJO will be a map of maps:<\/p>\n<pre><code class=\"language-java\">private Map&lt;String, Map&lt;String, Integer&gt;&gt; complexMapping;<\/code><\/pre>\n<h2 data-id=\"conclusion-7\">3. Conclusion<\/h2>\n<div class=\"bd-anchor\" id=\"conclusion-7\"><\/div>\n<p>In this article, we saw how we could define simple and more complex nested maps in a YAML configuration file for a simple POJO.<\/p>\n<p>The code for\u00a0this article is available\u00a0<a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/github.com\/eugenp\/tutorials\/tree\/master\/spring-boot-modules\/spring-boot-properties-3\">over on GitHub<\/a><\/p>\n<p><Img align=\"left\" border=\"0\" height=\"1\" width=\"1\" alt=\"\" style=\"border:0;float:left;margin:0;padding:0;width:1px!important;height:1px!important;\" hspace=\"0\" src=\"https:\/\/feeds.feedblitz.com\/~\/i\/633837666\/0\/baeldung\"><\/p>\n<div style=\"clear:both;padding-top:0.2em;\"><a title=\"Like on Facebook\" href=\"https:\/\/feeds.feedblitz.com\/_\/28\/633837666\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/fblike20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Share on Google+\" href=\"https:\/\/feeds.feedblitz.com\/_\/30\/633837666\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/googleplus20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Pin it!\" href=\"https:\/\/feeds.feedblitz.com\/_\/29\/633837666\/baeldung,\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/pinterest20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Tweet This\" href=\"https:\/\/feeds.feedblitz.com\/_\/24\/633837666\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/twitter20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Subscribe by email\" href=\"https:\/\/feeds.feedblitz.com\/_\/19\/633837666\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/email20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Subscribe by RSS\" href=\"https:\/\/feeds.feedblitz.com\/_\/20\/633837666\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/rss20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a rel=\"NOFOLLOW\" title=\"View Comments\" href=\"https:\/\/www.baeldung.com\/yaml-map-pojo#respond\"><img decoding=\"async\" height=\"20\" style=\"border:0;margin:0;padding:0;\" src=\"https:\/\/assets.feedblitz.com\/i\/comments20.png\"><\/a>&#160;<a title=\"Follow Comments via RSS\" href=\"https:\/\/www.baeldung.com\/yaml-map-pojo\/feed\/\"><img decoding=\"async\" height=\"20\" style=\"border:0;margin:0;padding:0;\" src=\"https:\/\/assets.feedblitz.com\/i\/commentsrss20.png\"><\/a>&#160;<\/div>\n\n<p class=\"syndicated-attribution\"><figure class= \\\"wp-block-image alignnone \\\"><img src= \\\"http:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-content\/uploads\/2016\/05\/logo2-2.png\\\" alt=\\\"IT\u96fb\u8166\u88dc\u7fd2 java\u88dc\u7fd2 \u70ba\u5927\u5bb6\u914d\u5c0d\u96fb\u8166\u88dc\u7fd2,IT freelance, \u79c1\u4eba\u8001\u5e2b, PHP\u88dc\u7fd2,CSS\u88dc\u7fd2,XML,Java\u88dc\u7fd2,MySQL\u88dc\u7fd2,graphic design\u88dc\u7fd2,\u4e2d\u5c0f\u5b78ICT\u88dc\u7fd2,\u4e00\u5c0d\u4e00\u79c1\u4eba\u88dc\u7fd2\u548cFreelance\u81ea\u7531\u5de5\u4f5c\u914d\u5c0d\u3002\\\"\/><figcaption>\u7acb\u523b\u8a3b\u518a\u53ca\u5831\u540d\u96fb\u8166\u88dc\u7fd2\u8ab2\u7a0b\u5427!<\/figcaption><\/figure>\r\n<\/br>Find A Teacher Form:\r\n<\/br>https:\/\/docs.google.com\/forms\/d\/1vREBnX5n262umf4wU5U2pyTwvk9O-JrAgblA-wH9GFQ\/viewform?edit_requested=true#responses\r\n<\/br><\/br>Email:\r\n<\/br>public1989two@gmail.com<br><br><br><br><br><br><br>\r\n<a href=www.itsec.hk style=color:#FFFFFF;>www.itsec.hk<\/a><br>\r\n<a href=\\\"www.itsec.vip\\\" style=color:#FFFFFF;>www.itsec.vip<\/a><br>\r\n<a href=\\\"www.itseceu.uk\\\" style=color:#FFFFFF;>www.itseceu.uk<\/a><br><\/p>","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>We&#8217;ll walk through how we can use properties defined in a YAML file to configure values for a Map in our POJO classes.<\/p>\n<div><a title=\"Like on Facebook\" href=\"https:\/\/feeds.feedblitz.com\/_\/28\/633837666\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/fblike20.png\"><\/a>&nbsp;<a title=\"Share on Google+\" href=\"https:\/\/feeds.feedblitz.com\/_\/30\/633837666\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/googleplus20.png\"><\/a>&nbsp;<a title=\"Pin it!\" href=\"https:\/\/feeds.feedblitz.com\/_\/29\/633837666\/baeldung,\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/pinterest20.png\"><\/a>&nbsp;<a title=\"Tweet This\" href=\"https:\/\/feeds.feedblitz.com\/_\/24\/633837666\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/twitter20.png\"><\/a>&nbsp;<a title=\"Subscribe by email\" href=\"https:\/\/feeds.feedblitz.com\/_\/19\/633837666\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/email20.png\"><\/a>&nbsp;<a title=\"Subscribe by RSS\" href=\"https:\/\/feeds.feedblitz.com\/_\/20\/633837666\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/rss20.png\"><\/a>&nbsp;<a rel=\"NOFOLLOW\" title=\"View Comments\" href=\"https:\/\/www.baeldung.com\/yaml-map-pojo#respond\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/comments20.png\"><\/a>&nbsp;<a title=\"Follow Comments via RSS\" href=\"https:\/\/www.baeldung.com\/yaml-map-pojo\/feed\/\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/commentsrss20.png\"><\/a>&nbsp;<\/div>\n<\/div>","protected":false},"author":761,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"slim_seo":{"title":"How to Define a Map in YAML for a POJO? - ITTeacherITFreelance.hk","description":"We'll walk through how we can use properties defined in a YAML file to configure values for a Map in our POJO classes. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"},"footnotes":""},"categories":[6],"tags":[4790],"_links":{"self":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/59780"}],"collection":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/users\/761"}],"replies":[{"embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/comments?post=59780"}],"version-history":[{"count":4,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/59780\/revisions"}],"predecessor-version":[{"id":61901,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/59780\/revisions\/61901"}],"wp:attachment":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=59780"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/categories?post=59780"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/tags?post=59780"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}