因爲在傳統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