Annotation Interface ConditionalOnAvailableEndpoint
@Conditional
that checks whether an endpoint is available. An
endpoint is considered available if it is both enabled and exposed on the specified
technologies.
Matches enablement according to the endpoints specific Environment
property,
falling back to management.endpoints.enabled-by-default
or failing that
Endpoint.enableByDefault()
.
Matches exposure according to any of the management.endpoints.web.exposure.<id>
or management.endpoints.jmx.exposure.<id>
specific properties or failing that
to whether any EndpointExposureOutcomeContributor
exposes the endpoint.
Both enablement and exposure conditions should match for the endpoint to be considered available.
When placed on a @Bean
method, the endpoint defaults to the return type of the
factory method:
@Configuration public class MyConfiguration { @ConditionalOnAvailableEndpoint @Bean public MyEndpoint myEndpoint() { ... } }
It is also possible to use the same mechanism for extensions:
@Configuration public class MyConfiguration { @ConditionalOnAvailableEndpoint @Bean public MyEndpointWebExtension myEndpointWebExtension() { ... } }
In the sample above, MyEndpointWebExtension
will be created if the endpoint is
available as defined by the rules above. MyEndpointWebExtension
must be a
regular extension that refers to an endpoint, something like:
@EndpointWebExtension(endpoint = MyEndpoint.class) public class MyEndpointWebExtension { }
Alternatively, the target endpoint can be manually specified for components that should only be created when a given endpoint is available:
@Configuration public class MyConfiguration { @ConditionalOnAvailableEndpoint(endpoint = MyEndpoint.class) @Bean public MyComponent myComponent() { ... } }
- Since:
- 2.2.0
- Author:
- Brian Clozel, Stephane Nicoll, Andy Wilkinson, Phillip Webb
- See Also:
-
Optional Element Summary
Modifier and TypeOptional ElementDescriptionClass<?>
The endpoint type that should be checked.Technologies to check the exposure of the endpoint on while considering it to be available.Class<?>
Alias forendpoint()
.
-
Element Details
-
value
Alias forendpoint()
.- Returns:
- the endpoint type to check
- Since:
- 3.4.0
- Default:
- java.lang.Void.class
-
endpoint
The endpoint type that should be checked. Inferred when the return type of the@Bean
method is either an@Endpoint
or an@EndpointExtension
.- Returns:
- the endpoint type to check
- Default:
- java.lang.Void.class
-
exposure
EndpointExposure[] exposureTechnologies to check the exposure of the endpoint on while considering it to be available.- Returns:
- the technologies to check
- Since:
- 2.6.0
- Default:
- {}
-