Merge branch '3.2.x' into 3.3.x

Closes gh-42176
This commit is contained in:
Andy Wilkinson 2024-09-06 14:27:34 +01:00
commit be4f06bb17
1 changed files with 5 additions and 2 deletions

View File

@ -114,8 +114,7 @@ TIP: `org.jetbrains.kotlinx:kotlinx-coroutines-reactor` dependency is provided b
[[features.kotlin.configuration-properties]] [[features.kotlin.configuration-properties]]
== @ConfigurationProperties == @ConfigurationProperties
`@ConfigurationProperties` when used in combination with xref:features/external-config.adoc#features.external-config.typesafe-configuration-properties.constructor-binding[constructor binding] supports data classes with immutable `val` properties as shown in the following example:
`@ConfigurationProperties` when used in combination with xref:features/external-config.adoc#features.external-config.typesafe-configuration-properties.constructor-binding[constructor binding] supports classes with immutable `val` properties as shown in the following example:
[source,kotlin] [source,kotlin]
---- ----
@ -132,6 +131,10 @@ data class KotlinExampleProperties(
} }
---- ----
Due to the limitations of their interoperability with Java, support for value classes is limited.
In particular, relying upon a value class's default value will not work with configuration property binding.
In such cases, a data class should be used instead.
TIP: To generate xref:specification:configuration-metadata/annotation-processor.adoc[your own metadata] using the annotation processor, {url-kotlin-docs}/kapt.html[`kapt` should be configured] with the `spring-boot-configuration-processor` dependency. TIP: To generate xref:specification:configuration-metadata/annotation-processor.adoc[your own metadata] using the annotation processor, {url-kotlin-docs}/kapt.html[`kapt` should be configured] with the `spring-boot-configuration-processor` dependency.
Note that some features (such as detecting the default value or deprecated items) are not working due to limitations in the model kapt provides. Note that some features (such as detecting the default value or deprecated items) are not working due to limitations in the model kapt provides.