2015-10-28 3 views
9

Ho un'applicazione web Spring MVC esistente. Ora voglio solo usare la funzionalità di controllo dello stato presente nell'attuatore di avviamento a molla.Controllo dello stato di avvio della primavera sulla webapp esistente

Sono nuovo per l'avvio di primavera, quindi non sono sicuro se ho bisogno di convertire il mio progetto completo in progetto di avvio primavera per il controllo dello stato di salute al lavoro. Posso solo includere la dipendenza e in qualche modo abilitare solo la funzionalità richiesta?

risposta

11

L'ho capito da solo. Invece di spring-boot-starter-actuator includo spring-boot-actuator. E non ho bisogno di inizializzare l'applicazione usando @SpringBootApplication. Invece ora imparo solo le classi di auto-configurazione che sono richieste. Così la classe config ora assomiglia a questo

@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 dipende ManagementServerProperties quindi dovuto importarlo. Questa sembra essere la configurazione minima per me. Fatemi sapere se c'è un'alternativa migliore

+0

È anche possibile importare 'PublicMetricsAutoConfiguration.class' per ottenere le metriche jvm/threads disponibili su _/metrics_ endpoint – Angad

+1

Come monitorare tale applicazione non di avvio automatico utilizzando spring-boot-admin? – user34567

+0

Funziona per me, Thax! –

2

Prima di tutto vorrei dirvi che sidgate's answer è corretto. Ma forse qualcuno deve abilitare tutte le metriche o scegliere diversi set di metriche.

È comunque possibile utilizzare spring-boot-starter-actuator invece di spring-boot-actuator

Per consentire tutte le metriche

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

dove @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 

e @ManagementContextConfiguration

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

consente di primavera avvio Configurazioni

Per abilitare taluni punti finali di gestione si potrebbe importare configurazioni di endpoint direttamente come sidgate 's già spiegato

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

... 

}) 
public class MyApplicationContext { 
} 

P.S. Ovviamente il contesto dell'applicazione Spring e l'inizializzazione delle proprietà possono essere configurati come sempre tramite annotazioni o configurazione xml.