2015-10-28 15 views
9

Ich habe bestehende Spring MVC Web-Anwendung. Jetzt möchte ich nur die im Spring-Boot-Starter-Aktor vorhandene Health-Check-Funktion nutzen.Spring Boot Gesundheitsprüfung auf bestehenden Webapp

Ich bin neu im Spring Boot, also nicht sicher, ob ich mein komplettes Projekt in Spring-Boot-Projekt konvertieren muss, damit der Gesundheitscheck funktioniert. Kann ich nur die Abhängigkeit einschließen und irgendwie nur die erforderliche Funktion aktivieren?

Antwort

11

Ich habe es selbst herausgefunden. Anstelle von spring-boot-starter-actuator schließe ich spring-boot-actuator ein. Und ich brauche die Anwendung nicht mit @SpringBootApplication initialisieren. Stattdessen importiere ich jetzt nur die Auto-Config-Klassen, die benötigt werden. So, jetzt die Config-Klasse wie dieses hängt

@Configuration 
@ComponentScan(basePackages = { "org.example" }) 
@Import({MyApplicationContext.class, EndpointWebMvcAutoConfiguration.class, 
    ManagementServerPropertiesAutoConfiguration.class, EndpointAutoConfiguration.class, 
    HealthIndicatorAutoConfiguration.class}) 
@PropertySource("classpath:app.properties") 
@EnableWebMvc 
public class MyWebApplicationContext { 
... 
} 

EndpointWebMvcAutoConfiguration sieht daher auf ManagementServerProperties es importieren musste. Dies scheint die Minimalkonfiguration für mich zu sein. Lassen Sie mich wissen, ob es eine bessere Alternative gibt

+0

Sie können auch 'PublicMetricsAutoConfiguration.class' importieren, um jvm/threads-Metriken am _/metrics_ Endpunkt verfügbar zu machen. – Angad

+1

Wie überwacht man solche nicht Spring-Boot-Anwendungen mit Spring-Boot-Admin? – user34567

+0

Es funktioniert für mich, Thax! –

2

Zuerst möchte ich sagen, dass sidgate's answer korrekt ist. Aber vielleicht muss jemand alle Metriken aktivieren oder andere Metriken wählen.

Sie können immer noch spring-boot-starter-actuator anstelle von spring-boot-actuator

Für alle Metriken ermöglicht

@org.springframework.context.annotation.Configuration 
@org.springframework.boot.autoconfigure.EnableAutoConfiguration 
@org.springframework.boot.actuate.autoconfigure.ManagementContextConfiguration 
public class MyApplicationContext { 
} 

wo @EnableAutoConfiguration

org.springframework.boot.actuate.autoconfigure.AuditAutoConfiguration, 
org.springframework.boot.actuate.autoconfigure.CacheStatisticsAutoConfiguration, 
org.springframework.boot.actuate.autoconfigure.CrshAutoConfiguration, 
org.springframework.boot.actuate.autoconfigure.EndpointAutoConfiguration, 
org.springframework.boot.actuate.autoconfigure.EndpointMBeanExportAutoConfiguration, 
org.springframework.boot.actuate.autoconfigure.EndpointWebMvcAutoConfiguration, 
org.springframework.boot.actuate.autoconfigure.HealthIndicatorAutoConfiguration, 
org.springframework.boot.actuate.autoconfigure.InfoContributorAutoConfiguration, 
org.springframework.boot.actuate.autoconfigure.JolokiaAutoConfiguration, 
org.springframework.boot.actuate.autoconfigure.ManagementServerPropertiesAutoConfiguration, 
org.springframework.boot.actuate.autoconfigure.ManagementWebSecurityAutoConfiguration, 
org.springframework.boot.actuate.autoconfigure.MetricFilterAutoConfiguration, 
org.springframework.boot.actuate.autoconfigure.MetricRepositoryAutoConfiguration, 
org.springframework.boot.actuate.autoconfigure.MetricsDropwizardAutoConfiguration, 
org.springframework.boot.actuate.autoconfigure.MetricsChannelAutoConfiguration, 
org.springframework.boot.actuate.autoconfigure.MetricExportAutoConfiguration, 
org.springframework.boot.actuate.autoconfigure.PublicMetricsAutoConfiguration, 
org.springframework.boot.actuate.autoconfigure.TraceRepositoryAutoConfiguration, 
org.springframework.boot.actuate.autoconfigure.TraceWebFilterAutoConfiguration.class 

und @ManagementContextConfiguration

org.springframework.boot.actuate.autoconfigure.EndpointWebMvcManagementContextConfiguration, 
org.springframework.boot.actuate.autoconfigure.EndpointWebMvcHypermediaManagementContextConfiguration 

ermöglicht Frühlings-Boot-Konfigurationen

Für bestimmte Management-Endpunkte ermöglichen Sie Konfigurationen Endpunkts importieren könnte direkt als sidgate ist schon

@Configuration 
@Import({ 
org.springframework.boot.actuate.autoconfigure.AuditAutoConfiguration.class, 
org.springframework.boot.actuate.autoconfigure.CacheStatisticsAutoConfiguration.class, 

... 

}) 
public class MyApplicationContext { 
} 

P. S. erklärt Natürlich könnte Spring Application Context und Properties Initialization wie immer über Annotationen oder XML Konfiguration konfiguriert werden.