Annotation Type ConditionalOnProperty
@Retention(RUNTIME) @Target({TYPE,METHOD}) @Documented @Conditional(org.springframework.boot.autoconfigure.condition.OnPropertyCondition.class) public @interface ConditionalOnProperty
Conditional
that checks if the specified properties have a specific value. By default the properties must be present in theEnvironment
and not equal tofalse
. ThehavingValue()
andmatchIfMissing()
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 thehavingValue()
attribute:Having values 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, thematchIfMissing()
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 theEnvironment
but does not match ifspring.example.values[0]
is present.@ConditionalOnProperty(prefix = "spring", name = "example.values") class ExampleAutoConfiguration { }
It is better to use a custom condition for such cases.- Since:
- 1.1.0
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description String
havingValue
The string representation of the expected value for the properties.boolean
matchIfMissing
Specify if the condition should match if the property is not set.String[]
name
The name of the properties to test.String
prefix
A prefix that should be applied to each property.String[]
value
Alias forname()
.
name
String[] name
The 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
).- Returns:
- the names
- Default:
- {}
havingValue
String havingValue
The string representation of the expected value for the properties. If not specified, the property must not be equal tofalse
.- Returns:
- the expected value
- Default:
- ""
matchIfMissing
boolean matchIfMissing
Specify if the condition should match if the property is not set. Defaults tofalse
.- Returns:
- if should match if the property is missing
- Default:
- false