anchor.diff:  	@ConfigurationProperties(prefix="acme")
   	public class AcmeProperties {
   
  -		// ... see the preceding example
  -
  -	}
  -----
  -
  +			private boolean enabled;
  +
  +    		private InetAddress remoteAddress;
  +
  +    		private final Security security = new Security();
  +
  +			// ... see the preceding JavaBean properties binding example
  +
  +	}
  +----
  +
  +
  +
  +[[boot-features-external-config-using]]
  +==== Using `@ConfigurationProperties`-annotated types
   This style of configuration works particularly well with the `SpringApplication` external
   YAML configuration, as shown in the following example:
   
  
positive.code: name of the bean. If the annotation does not provide any prefix, only the fully qualified
  name of the bean is used.
  
  The bean name in the example above is `acme-com.example.AcmeProperties`.
  ====
  
  The preceding configuration creates a regular bean for `AcmeProperties`. We recommend that
  `@ConfigurationProperties` only deal with the environment and, in particular, does not
  inject other beans from the context. Keep in mind that the
  `@EnableConfigurationProperties` annotation is _also_ automatically applied to your
  project so that any _existing_ bean annotated with `@ConfigurationProperties` is
  configured from the `Environment`. Instead of annotating `MyConfiguration` with
  `@EnableConfigurationProperties(AcmeProperties.class)`, you could make `AcmeProperties`
  a bean, 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.
  