mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-08-29 03:06:45 +08:00
Improve @Value documentation
Improve "@ConfigurationProperties vs. @Value" documentation with the recommendation that kebab-case is used with the `@Value` annotation. Closes gh-20507
This commit is contained in:
parent
291165f060
commit
416cfc2c86
@ -1303,7 +1303,7 @@ The following table summarizes the features that are supported by `@Configuratio
|
||||
|
||||
| <<boot-features-external-config-relaxed-binding,Relaxed binding>>
|
||||
| Yes
|
||||
| No
|
||||
| Limited (see note below)
|
||||
|
||||
| <<appendix-configuration-metadata.adoc#configuration-metadata,Meta-data support>>
|
||||
| Yes
|
||||
@ -1315,7 +1315,12 @@ The following table summarizes the features that are supported by `@Configuratio
|
||||
|===
|
||||
|
||||
If you define a set of configuration keys for your own components, we recommend you group them in a POJO annotated with `@ConfigurationProperties`.
|
||||
You should also be aware that, since `@Value` does not support relaxed binding, it is not a good candidate if you need to provide the value by using environment variables.
|
||||
Doing so will provide you with structured, type-safe object that you can inject into your own beans.
|
||||
|
||||
If you do want to use `@Value`, we recommend that you refer to property names using their canonical form (kebab-case using only lowercase letters).
|
||||
This will allow Spring Boot to use the same logic as it does when relaxed binding `@ConfigurationProperties`.
|
||||
For example, `@Value("{demo.item-price}")` will pick up `demo.item-price` and `demo.itemPrice` forms from the `application.properties` file, as well as `DEMO_ITEMPRICE` from the system environment.
|
||||
If you used `@Value("{demo.itemPrice}")` instead, `demo.item-price` and `DEMO_ITEMPRICE` would not be considered.
|
||||
|
||||
Finally, while you can write a `SpEL` expression in `@Value`, such expressions are not processed from <<boot-features-external-config-application-property-files,application property files>>.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user