anchor.diff:  sometimes be cumbersome, especially if you are working with multiple properties or your
   data is hierarchical in nature. Spring Boot provides an alternative method of working
   with properties that lets strongly typed beans govern and validate the configuration of
  -your application, as shown in the following example:
  +your application.
  +
  +TIP: See also the <<boot-features-external-config-vs-value,differences between `@Value`
  +and type-safe configuration properties>>.
  +
  +
  +
  +[[boot-features-external-config-java-bean-binding]]
  +==== JavaBean properties binding
  +It is possible to bind a bean declaring standard JavaBean properties as shown in the
  +following example:
   
   [source,java,indent=0]
   ----
  
positive.code: 	@ConfigurationProperties(prefix="acme")
  	public class AcmeProperties {
  
  		// ... see the preceding example
  
  	}
  ----
  
  This style of configuration works particularly well with the `SpringApplication` external
  YAML configuration, as shown in the following example:
  
  
negative.code: the name of the property. In particular, the return type is not used at all there and
  could have been `SecurityProperties`.
  * `acme.security.password`.
  * `acme.security.roles`, with a collection of `String` that defaults to `USER`.
  
  [NOTE]
  ====
  Such arrangement relies on a default empty constructor and getters and setters are usually
  mandatory, since binding is through standard Java Beans property descriptors, just like in
  Spring MVC. A setter may be omitted in the following cases:
  
  * Maps, as long as they are initialized, need a getter but not necessarily a setter,
  since they can be mutated by the binder.
  