批注接口 ConditionalOnProperty
@Conditional
that checks if the specified properties have a
specific value. By default the properties must be present in the Environment
and not equal to false
. The havingValue()
and
matchIfMissing()
attributes allow further customizations.
The havingValue()
attribute can be used to specify the value that the property
should have. The table below shows when a condition matches according to the property
value and the havingValue()
attribute:
Property Value | havingValue="" |
havingValue="true" |
havingValue="false" |
havingValue="foo" |
---|---|---|---|---|
"true" |
yes | yes | no | no |
"false" |
no | no | yes | no |
"foo" |
yes | no | no | yes |
If the property is not contained in the Environment
at all, the
matchIfMissing()
attribute is consulted. By default missing attributes do not
match.
This condition cannot be reliably used for matching collection properties. For example,
in the following configuration, the condition matches if spring.example.values
is present in the Environment
but does not match if
spring.example.values[0]
is present.
@ConditionalOnProperty(prefix = "spring", name = "example.values") class ExampleAutoConfiguration { }It is better to use a custom condition for such cases.
- 从以下版本开始:
- 1.1.0
- 作者:
- Maciej Walkowiak, Stephane Nicoll, Phillip Webb
-
元素详细资料
-
value
String[] valueAlias forname()
.- 返回:
- the names
- 默认值:
{}
-
prefix
String prefixA prefix that should be applied to each property. The prefix automatically ends with a dot if not specified. A valid prefix is defined by one or more words separated with dots (e.g."acme.system.feature"
).- 返回:
- the prefix
- 默认值:
""
-
name
String[] nameThe name of the properties to test. If a prefix has been defined, it is applied to compute the full key of each property. For instance if the prefix isapp.config
and one value ismy-value
, the full key would beapp.config.my-value
Use the dashed notation to specify each property, that is all lower case with a "-" to separate words (e.g.
my-long-property
).If multiple names are specified, all of the properties have to pass the test for the condition to match.
- 返回:
- the names
- 默认值:
{}
-
havingValue
String havingValueThe string representation of the expected value for the properties. If not specified, the property must not be equal tofalse
.- 返回:
- the expected value
- 默认值:
""
-
matchIfMissing
boolean matchIfMissingSpecify if the condition should match if the property is not set. Defaults tofalse
.- 返回:
- if the condition should match if the property is missing
- 默认值:
false
-