问题描述
我有一个GWT应用程序,它不是Spring Boot应用程序,并且我设法将执行器v1.5.9和spring v4.3.3与此配置类集成在一起。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.autoconfigure.EndpointAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.EndpointWebMvcManagementContextConfiguration;
import org.springframework.boot.actuate.autoconfigure.HealthindicatorAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.ManagementServerPropertiesAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.ManagementWebSecurityAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.MetricExportAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.MetricFilterautoConfiguration;
import org.springframework.boot.actuate.autoconfigure.MetricRepositoryAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.MetricsChannelAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.MetricsDropwizardAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.PublicmetricsAutoConfiguration;
import org.springframework.boot.actuate.endpoint.EndpointProperties;
import org.springframework.boot.actuate.endpoint.HealthEndpoint;
import org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.PropertySource;
@Configuration
@Import({ EndpointWebMvcManagementContextConfiguration.class,ManagementServerPropertiesAutoConfiguration.class,EndpointAutoConfiguration.class,HealthindicatorAutoConfiguration.class,MetricExportAutoConfiguration.class,MetricFilterautoConfiguration.class,MetricsChannelAutoConfiguration.class,MetricsDropwizardAutoConfiguration.class,MetricRepositoryAutoConfiguration.class,PublicmetricsAutoConfiguration.class,EndpointProperties.class,ManagementWebSecurityAutoConfiguration.class })
@PropertySource("classpath:Application.properties")
public class HealthCheckConfiguration {
@Bean
@Autowired
public HealthMvcEndpoint healthMvcEndpoint(HealthEndpoint delegate) {
return new HealthMvcEndpoint(delegate,true);
}
}
在新版本的弹簧执行器v2.3.1和spring v5.2.7中,您能帮我做同样的事情吗? 谢谢,
解决方法
这个配置对我有用(对于带有弹簧启动执行器的 SpringMVC 项目)
@Configuration
@Import({
EndpointAutoConfiguration.class,HealthIndicatorAutoConfiguration.class,InfoEndpointAutoConfiguration.class,HealthEndpointAutoConfiguration.class,WebEndpointAutoConfiguration.class,ServletManagementContextAutoConfiguration.class,ManagementContextAutoConfiguration.class,})
@EnableConfigurationProperties(CorsEndpointProperties.class)
class ActuatorConfiguration {
@Bean //taken from WebMvcEndpointManagementContextConfiguration.class
public WebMvcEndpointHandlerMapping webEndpointServletHandlerMapping(WebEndpointsSupplier webEndpointsSupplier,ServletEndpointsSupplier servletEndpointsSupplier,ControllerEndpointsSupplier controllerEndpointsSupplier,EndpointMediaTypes endpointMediaTypes,CorsEndpointProperties corsProperties,WebEndpointProperties webEndpointProperties) {
List<ExposableEndpoint<?>> allEndpoints = new ArrayList<>();
Collection<ExposableWebEndpoint> webEndpoints = webEndpointsSupplier.getEndpoints();
allEndpoints.addAll(webEndpoints);
allEndpoints.addAll(servletEndpointsSupplier.getEndpoints());
allEndpoints.addAll(controllerEndpointsSupplier.getEndpoints());
EndpointMapping endpointMapping = new EndpointMapping(webEndpointProperties.getBasePath());
return new WebMvcEndpointHandlerMapping(endpointMapping,webEndpoints,endpointMediaTypes,corsProperties.toCorsConfiguration(),new EndpointLinksResolver(allEndpoints,webEndpointProperties.getBasePath()));
}
@Bean
DispatcherServletPath dispatcherServletPath() {
return () -> "/";
}
}
我确实包括了
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-actuator-autoconfigure</artifactId>
<version>2.1.18.RELEASE</version>
</dependency>
为了与我一直使用的基线 Spring 版本 (5.1.19.RELEASE) 兼容
执行器端点暴露在 /actuator/*