@Documented @Retention(value=RUNTIME) @Target(value={PACKAGE,TYPE,ANNOTATION_TYPE,METHOD,FIELD}) @Repeatable(value=Requirements.class) public @interface Requires
Configuration.| Modifier and Type | Optional Element and Description | 
|---|---|
| Class | beanExpresses that the bean the given class should be available for the bean or configuration to load. | 
| String | beanPropertyUsed in combination with  bean()to
 express that the given bean property should be
 set for the bean to load. | 
| Class[] | beansExpresses that beans of the given types should be available for the bean or configuration to load. | 
| Class[] | classesExpresses the given classes that should be present on the classpath for the bean or configuration to load. | 
| Class<? extends Condition> | conditionOne ore more custom condition classes. | 
| String | configurationExpresses the configurations that should be present for the bean or configuration to load. | 
| String | defaultValue | 
| Class<? extends Annotation>[] | entitiesExpresses that the configuration requires entities annotated with the given annotations to be available to the
 application via package scanning. | 
| String[] | envExpresses that the configuration will only load within the given environments. | 
| Class[] | missingExpresses the given classes that should be missing from the classpath for the bean or configuration to load. | 
| Class[] | missingBeansExpresses the given beans that should be missing from the classpath for the bean or configuration to load. | 
| String[] | missingClassesExpresses the given class names should be missing from the classpath for the bean configuration to load. | 
| String[] | missingConfigurationsExpresses the given configurations that should be missing from the classpath for the bean or configuration to
 load. | 
| String | missingPropertyExpresses that the bean or configuration will only be configured if the given property is missing. | 
| String[] | notEnvExpresses that the configuration will not load within the given environments. | 
| String | notEqualsConstraint a property to not equal the given value. | 
| Requires.Family[] | notOsExpresses the current operating system must not be one in the given list. | 
| Requires.Family[] | osExpresses the current operating system must be one in the given list. | 
| String | patternUsed in combination with  property()to express the required pattern of the property. | 
| String | propertyExpresses that the given property should be set for the bean to load. | 
| String[] | resourcesExpresses the given resources should exist for the bean configuration to load. | 
| Requires.Sdk | sdkUsed to express an SDK requirement. | 
| String | valueUsed in combination with  property()to express the required value of the property. | 
| String | versionUsed in combination with  sdk(),configuration(),classes()orbeans()to
 express a minimum version of the SDK, configuration or classes. | 
public abstract String[] env
public abstract String[] notEnv
public abstract String property
public abstract String notEquals
@InstantiatedMember public abstract Class<? extends Condition> condition
public abstract Requires.Sdk sdk
version() to specify a minimum
 version requirement.public abstract String configuration
public abstract String value
property() to express the required value of the property.public abstract String defaultValue
public abstract String pattern
property() to express the required pattern of the property. The
 pattern will be evaluated with String.matches(String).public abstract String version
sdk(), configuration(), classes() or beans() to
 express a minimum version of the SDK, configuration or classes.public abstract Class[] classes
public abstract Class<? extends Annotation>[] entities
public abstract Class[] beans
public abstract Class[] missing
public abstract Class[] missingBeans
public abstract String[] missingConfigurations
public abstract String missingProperty
public abstract String[] resources
ResourceResolver can read, eg:
 file:/path/to/file.txt classpath:com/mycompany/file.txt
public abstract Requires.Family[] os
public abstract Requires.Family[] notOs
public abstract Class bean
beanProperty() to specify the required bean property