diff --git a/spring-boot-project/spring-boot-docs/src/main/asciidoc/appendix/configuration-metadata.adoc b/spring-boot-project/spring-boot-docs/src/main/asciidoc/appendix/configuration-metadata.adoc index 8b437aea608..76c816c6dfb 100644 --- a/spring-boot-project/spring-boot-docs/src/main/asciidoc/appendix/configuration-metadata.adoc +++ b/spring-boot-project/spring-boot-docs/src/main/asciidoc/appendix/configuration-metadata.adoc @@ -820,6 +820,51 @@ is detected even if only a getter is present). The annotation processor also supports the use of the `@Data`, `@Getter`, and `@Setter` lombok annotations. + +The annotation processor cannot auto-detect default values for ``Enum``s and ``Collections``s. +In the cases where a `Collection` or `Enum` property has a non-empty default value, +<> should be provided. + +Consider the following class: + +[source,java,indent=0,subs="verbatim,quotes,attributes"] +---- + @ConfigurationProperties(prefix="rabbit") + public class RabbitProperties { + + private List addresses = new ArrayList<>(Arrays.asList("a", "b")) ; + + private ContainerType = ContainerType.SIMPLE; + + // ... getter and setters + + public enum ContainerType { + + SIMPLE, + + DIRECT + + } + + } +---- + +In order to document default values for properties in the class above, you could add the following +JSON to <>: + +[source,json,indent=0] +---- + { + "name": "rabbit.addresses", + "defaultValue": "a, b" + }, + { + "name": "rabbit.container-type", + "defaultValue": "simple" + } +---- + + [NOTE] ==== If you are using AspectJ in your project, you need to make sure that the annotation