因为在传统Spring应用中,咱们不能直接使用Starter POMs。因此,咱们须要拆解了来引入到传统Spring应用的pom.xml
中,主要有以下两个依赖:html
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-actuator</artifactId> <version>1.4.3.RELEASE</version> <type>jar</type> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>4.3.2.Final</version> </dependency>
因为在传统Spring应用中没有自动化配置功能,因此咱们须要手工的来建立配置并启用Spring Boot Actuator的监控端点。好比,咱们先来建立一个实现/health
端点的配置,具体以下:web
@Configuration @Import({ EndpointAutoConfiguration.class, HealthIndicatorAutoConfiguration.class}) public class MyAppSpringConfig { @Bean public EndpointHandlerMapping endpointHandlerMapping( Collection<? extends MvcEndpoint> endpoints) { return new EndpointHandlerMapping(endpoints); } @Bean public HealthMvcEndpoint healthMvcEndpoint(HealthEndpoint delegate) { return new HealthMvcEndpoint(delegate, false); } }
其中,@Import
中引入的org.springframework.boot.actuate.autoconfigure.EndpointAutoConfiguration
类是Spring Boot Actuator的基础配置类。org.springframework.boot.actuate.autoconfigure.HealthIndicatorAutoConfiguration
类是/health
端点的基础配置,具体内容本文不作详细展开,读者可自行查看。而在该配置类中,还建立了两个Bean,其中EndpointHandlerMapping
是org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping
的子类,它用来加载全部的监控端点;而HealthMvcEndpoint
是具体的/health
端点实现。spring
在完成上面配置以后,咱们就能够启动Spring应用,此时就能够看控制台中看到打印出了/health
端点,咱们能够尝试访问该端点来获取当前实例的健康情况。mvc
除了在传统应用中能够加载/health
端点以外,咱们也能够如法炮制地建立其余端点,好比:获取各个度量指标的/metrics
端点,能够经过以下配置实现:app
@Configuration @Import({ EndpointAutoConfiguration.class, PublicMetricsAutoConfiguration.class, HealthIndicatorAutoConfiguration.class}) public class MyAppSpringConfig { @Bean public EndpointHandlerMapping endpointHandlerMapping( Collection<? extends MvcEndpoint> endpoints) { return new EndpointHandlerMapping(endpoints); } @Bean public HealthMvcEndpoint healthMvcEndpoint(HealthEndpoint delegate) { return new HealthMvcEndpoint(delegate, false); } @Bean public EndpointMvcAdapter metricsEndPoint(MetricsEndpoint delegate) { return new EndpointMvcAdapter(delegate); } }
这里,咱们主要增长了两个内容:spring-boot
@Import
中增长引入PublicMetricsAutoConfiguration
配置类/metrics
端点的实现Bean源码来源spa