org.springframework.boot.actuate.endpoint.EndpointId#org.springframework.boot.actuate.endpoint.web.annotation.WebEndpointDiscoverer源码实例Demo

下面列出了org.springframework.boot.actuate.endpoint.EndpointId#org.springframework.boot.actuate.endpoint.web.annotation.WebEndpointDiscoverer 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

private void load(Function<EndpointId, Long> timeToLive,
		PathMapper endpointPathMapper,
		Class<?> configuration,
		Consumer<WebEndpointDiscoverer> consumer) {

	try (AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(configuration)) {
		ConversionServiceParameterValueMapper parameterMapper = new ConversionServiceParameterValueMapper(DefaultConversionService.getSharedInstance());
		EndpointMediaTypes mediaTypes = new EndpointMediaTypes(
				Collections.singletonList("application/json"),
				Collections.singletonList("application/json"));

		WebEndpointDiscoverer discoverer = new WebEndpointDiscoverer(context,
				parameterMapper,
				mediaTypes,
				Collections.singletonList(endpointPathMapper),
				Collections.singleton(new CachingOperationInvokerAdvisor(timeToLive)),
				Collections.emptyList());

		consumer.accept(discoverer);
	}
}
 
@Bean
@ConditionalOnMissingBean(WebEndpointsSupplier.class)
WebEndpointDiscoverer webEndpointDiscoverer(
        ApplicationContext applicationContext,
        ParameterValueMapper parameterValueMapper,
        EndpointMediaTypes endpointMediaTypes,
        ObjectProvider<PathMapper> endpointPathMappers,
        ObjectProvider<OperationInvokerAdvisor> invokerAdvisors,
        ObjectProvider<EndpointFilter<ExposableWebEndpoint>> filters) {
    return new WebEndpointDiscoverer(applicationContext,
                                     parameterValueMapper,
                                     endpointMediaTypes,
                                     endpointPathMappers.orderedStream().collect(toImmutableList()),
                                     invokerAdvisors.orderedStream().collect(toImmutableList()),
                                     filters.orderedStream().collect(toImmutableList()));
}
 
private void load(Class<?> configuration, Consumer<WebEndpointDiscoverer> consumer) {
	this.load((id) -> null, EndpointId::toString, configuration, consumer);
}