@Target(value={TYPE,METHOD}) @Retention(value=RUNTIME) @Documented public @interface Conditional
A condition is any state that can be determined programmatically
before the bean definition is due to be registered (see Condition
for details).
The @Conditional
annotation may be used in any of the following ways:
@Component
, including @Configuration
classes@Bean
methodIf a @Configuration
class is marked with @Conditional
,
all of the @Bean
methods, @Import
annotations, and
@ComponentScan
annotations associated with that
class will be subject to the conditions.
NOTE: Inheritance of @Conditional
annotations
is not supported; any conditions from superclasses or from overridden
methods will not be considered. In order to enforce these semantics,
@Conditional
itself is not declared as
@Inherited
; furthermore, any
custom composed annotation that is meta-annotated with
@Conditional
must not be declared as @Inherited
.
Condition
Modifier and Type | Required Element and Description |
---|---|
Class<? extends Condition>[] |
value
All
Conditions that must match
in order for the component to be registered. |
public abstract Class<? extends Condition>[] value
Conditions
that must match
in order for the component to be registered.