@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