{"action":"created","issue":{"url":"https://api.github.com/repos/spring-projects/spring-boot/issues/2234","labels_url":"https://api.github.com/repos/spring-projects/spring-boot/issues/2234/labels{/name}","comments_url":"https://api.github.com/repos/spring-projects/spring-boot/issues/2234/comments","events_url":"https://api.github.com/repos/spring-projects/spring-boot/issues/2234/events","html_url":"https://github.com/spring-projects/spring-boot/issues/2234","id":52868395,"number":2234,"title":"Docs should explicit state how @ConfigurationProperties map to command line args and os env vars","user":{"login":"cer","id":246234,"avatar_url":"https://avatars.githubusercontent.com/u/246234?v=3","gravatar_id":"","url":"https://api.github.com/users/cer","html_url":"https://github.com/cer","followers_url":"https://api.github.com/users/cer/followers","following_url":"https://api.github.com/users/cer/following{/other_user}","gists_url":"https://api.github.com/users/cer/gists{/gist_id}","starred_url":"https://api.github.com/users/cer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cer/subscriptions","organizations_url":"https://api.github.com/users/cer/orgs","repos_url":"https://api.github.com/users/cer/repos","events_url":"https://api.github.com/users/cer/events{/privacy}","received_events_url":"https://api.github.com/users/cer/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/spring-projects/spring-boot/labels/documentation","name":"documentation","color":"009800"}],"state":"closed","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/spring-projects/spring-boot/milestones/31","labels_url":"https://api.github.com/repos/spring-projects/spring-boot/milestones/31/labels","id":890749,"number":31,"title":"1.2.1","description":"","creator":{"login":"philwebb","id":519772,"avatar_url":"https://avatars.githubusercontent.com/u/519772?v=3","gravatar_id":"","url":"https://api.github.com/users/philwebb","html_url":"https://github.com/philwebb","followers_url":"https://api.github.com/users/philwebb/followers","following_url":"https://api.github.com/users/philwebb/following{/other_user}","gists_url":"https://api.github.com/users/philwebb/gists{/gist_id}","starred_url":"https://api.github.com/users/philwebb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/philwebb/subscriptions","organizations_url":"https://api.github.com/users/philwebb/orgs","repos_url":"https://api.github.com/users/philwebb/repos","events_url":"https://api.github.com/users/philwebb/events{/privacy}","received_events_url":"https://api.github.com/users/philwebb/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":75,"state":"closed","created_at":"2014-12-03T23:57:15Z","updated_at":"2015-01-08T08:22:30Z","due_on":"2015-01-08T08:00:00Z","closed_at":"2015-01-08T08:22:30Z"},"comments":5,"created_at":"2014-12-25T17:23:39Z","updated_at":"2015-01-08T15:19:56Z","closed_at":"2015-01-08T06:29:50Z","body":"Suppose I have an @ConfigurationProperties class such as \r\n\r\n```\r\n@ConfigurationProperties(prefix = \"foo.bar\")\r\nclass BazProperties {\r\n\r\n  @BeanProperty\r\n  @Required\r\n  var simple : String = null\r\n\r\n  @BeanProperty\r\n  @Required\r\n  var compoundName : Int = 30\r\n}\r\n```\r\n\r\nThe docs don't appear to explicitly define how this class's properties map to command line args and OS environment variables, e.g. FOO_BAR_COMPOUNDNAME and/or FOO_BAR_COMPOUND_NAME "},"comment":{"url":"https://api.github.com/repos/spring-projects/spring-boot/issues/comments/69193397","html_url":"https://github.com/spring-projects/spring-boot/issues/2234#issuecomment-69193397","issue_url":"https://api.github.com/repos/spring-projects/spring-boot/issues/2234","id":69193397,"user":{"login":"cer","id":246234,"avatar_url":"https://avatars.githubusercontent.com/u/246234?v=3","gravatar_id":"","url":"https://api.github.com/users/cer","html_url":"https://github.com/cer","followers_url":"https://api.github.com/users/cer/followers","following_url":"https://api.github.com/users/cer/following{/other_user}","gists_url":"https://api.github.com/users/cer/gists{/gist_id}","starred_url":"https://api.github.com/users/cer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cer/subscriptions","organizations_url":"https://api.github.com/users/cer/orgs","repos_url":"https://api.github.com/users/cer/repos","events_url":"https://api.github.com/users/cer/events{/privacy}","received_events_url":"https://api.github.com/users/cer/received_events","type":"User","site_admin":false},"created_at":"2015-01-08T15:19:56Z","updated_at":"2015-01-08T15:19:56Z","body":"Great that you added that description to the docs. I think it's helpful.\r\n\r\nPerhaps I encountered the anomaly. I had this class:\r\n\r\n```scala\r\n@ConfigurationProperties(prefix = \"myApp\")\r\nclass MyAppConfigurationProperties {\r\n\r\n@BeanProperty\r\n  var url : String = _\r\n\r\n@BeanProperty\r\n  var serverHost : String = _\r\n}\r\n```\r\n\r\nAs expected, I could specify the url property with -DmyApp.url, -Dmyapp.url, or OS env var MY_APP_URL.\r\n\r\nI could  specify serverHost with -DmyApp.serverHost and OS env var MY_APP_SERVER_HOST.\r\nBut other variants that I expected to work such as -DmyApp.server.host or -DmyApp.server_host, .. did not -  I can't remember what else I tried.\r\n\r\nThe trouble with simply saying that the binding is 'relaxed' is that it's a vague description of behavior. \r\n\r\n\r\n"}}