Package org.springframework.context.annotation

# Interface Condition

All Known Subinterfaces:
  `ConfigurationCondition`

Functional Interface:
  This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface Condition
A single condition that must be matched in order for a component to be registered.

Conditions are checked immediately before the bean definition is due to be registered and are free to veto registration based on any criteria that can be determined at that point.

Conditions must follow the same restrictions as a `BeanFactoryPostProcessor` and take care to never interact with bean instances. For more fine-grained control over conditions that interact with `@Configuration` beans, consider implementing the `ConfigurationCondition` interface.

Multiple conditions on a given class or on a given method will be ordered according to the semantics of Spring's `Ordered` interface and `@Order` annotation. See `AnnotationAwareOrderComparator` for details.

Since:
  4.0
Author:
  Phillip Webb, Sam Brannen
See Also:
  - `ConfigurationCondition`
  - `Conditional`
  - `ConditionContext`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`matches(ConditionContext context, org.springframework.core.type.AnnotatedTypeMetadata metadata)`
Determine if the condition matches.

## Method Details

### matches

boolean matches(ConditionContext context, org.springframework.core.type.AnnotatedTypeMetadata metadata)
Determine if the condition matches.

Parameters:
  `context` - the condition context
  `metadata` - the metadata of the `class` or `method` being checked
Returns:
  `true` if the condition matches and the component can be registered, or `false` to veto the annotated component's registration