Document @ConfigurationPropertiesBinding should use static bean methods
Closes gh-45621
This commit is contained in:
parent
3e3aa5acbc
commit
fa0107c431
|
@ -1137,9 +1137,15 @@ NOTE: The preceding merging rules apply to properties from all property sources,
|
||||||
Spring Boot attempts to coerce the external application properties to the right type when it binds to the javadoc:org.springframework.boot.context.properties.ConfigurationProperties[format=annotation] beans.
|
Spring Boot attempts to coerce the external application properties to the right type when it binds to the javadoc:org.springframework.boot.context.properties.ConfigurationProperties[format=annotation] beans.
|
||||||
If you need custom type conversion, you can provide a javadoc:org.springframework.core.convert.ConversionService[] bean (with a bean named `conversionService`) or custom property editors (through a javadoc:org.springframework.beans.factory.config.CustomEditorConfigurer[] bean) or custom converters (with bean definitions annotated as javadoc:org.springframework.boot.context.properties.ConfigurationPropertiesBinding[format=annotation]).
|
If you need custom type conversion, you can provide a javadoc:org.springframework.core.convert.ConversionService[] bean (with a bean named `conversionService`) or custom property editors (through a javadoc:org.springframework.beans.factory.config.CustomEditorConfigurer[] bean) or custom converters (with bean definitions annotated as javadoc:org.springframework.boot.context.properties.ConfigurationPropertiesBinding[format=annotation]).
|
||||||
|
|
||||||
NOTE: As this bean is requested very early during the application lifecycle, make sure to limit the dependencies that your javadoc:org.springframework.core.convert.ConversionService[] is using.
|
[NOTE]
|
||||||
|
====
|
||||||
|
Beans used for property conversion are requested very early during the application lifecycle so make sure to limit the dependencies that your javadoc:org.springframework.core.convert.ConversionService[] is using.
|
||||||
Typically, any dependency that you require may not be fully initialized at creation time.
|
Typically, any dependency that you require may not be fully initialized at creation time.
|
||||||
You may want to rename your custom javadoc:org.springframework.core.convert.ConversionService[] if it is not required for configuration keys coercion and only rely on custom converters qualified with javadoc:org.springframework.boot.context.properties.ConfigurationPropertiesBinding[format=annotation].
|
|
||||||
|
You should also declare any javadoc:org.springframework.boot.context.properties.ConfigurationProperties[format=annotation] beans using `static` methods to avoid "`bean is not eligible for getting processed by all BeanPostProcessors`" warnings.
|
||||||
|
====
|
||||||
|
|
||||||
|
TIP: You may want to rename your custom javadoc:org.springframework.core.convert.ConversionService[] if it is not required for configuration keys coercion and only rely on custom converters qualified with javadoc:org.springframework.boot.context.properties.ConfigurationPropertiesBinding[format=annotation].
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,10 @@ import org.springframework.stereotype.Indexed;
|
||||||
* <p>
|
* <p>
|
||||||
* Note that contrary to {@code @Value}, SpEL expressions are not evaluated since property
|
* Note that contrary to {@code @Value}, SpEL expressions are not evaluated since property
|
||||||
* values are externalized.
|
* values are externalized.
|
||||||
|
* <p>
|
||||||
|
* Static methods should be used when declaring {@code @ConfigurationProperties} beans to
|
||||||
|
* ensure that "bean is not eligible for getting processed by all BeanPostProcessors"
|
||||||
|
* warnings are not produced.
|
||||||
*
|
*
|
||||||
* @author Dave Syer
|
* @author Dave Syer
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
|
|
Loading…
Reference in New Issue