ho aggiunto informazioni su come aggiungere attuatore avvio primavera in un'applicazione non di avvio in questo post del blog
http://givenwhenthen.blogspot.com/2015/09/adding-spring-boot-actuator-to-non.html
Nel build.gradle dell'applicazione , Ho aggiunto la seguente dipendenza
compile('org.springframework.boot:spring-boot-actuator:1.2.5.RELEASE'){
exclude group: 'org.springframework.boot', module:'spring-boot-starter-logging'}
Nella classe Spring Config dell'applicazione, ho aggiunto le seguenti cose:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.autoconfigure.EndpointAutoConfiguration;
import org.springframework.boot.actuate.endpoint.BeansEndpoint;
import org.springframework.boot.actuate.endpoint.HealthEndpoint;
import org.springframework.boot.actuate.endpoint.InfoEndpoint;
import org.springframework.boot.actuate.endpoint.RequestMappingEndpoint;
import org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping;
import org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter;
import org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint;
import org.springframework.boot.actuate.endpoint.mvc.MvcEndpoint;
@Configuration
@Import(EndpointAutoConfiguration.class)
public class MyAppSpringConfig {
@Bean
@Autowired
//Define the HandlerMapping similar to RequestHandlerMapping to expose the endpoint
public EndpointHandlerMapping endpointHandlerMapping(
Collection<? extends MvcEndpoint> endpoints
){
return new EndpointHandlerMapping(endpoints);
}
@Bean
@Autowired
//define the HealthPoint endpoint
public HealthMvcEndpoint healthMvcEndpoint(HealthEndpoint delegate){
return new HealthMvcEndpoint(delegate, false);
}
@Bean
@Autowired
//define the Info endpoint
public EndpointMvcAdapter infoMvcEndPoint(InfoEndpoint delegate){
return new EndpointMvcAdapter(delegate);
}
@Bean
@Autowired
//define the beans endpoint
public EndpointMvcAdapter beansEndPoint(BeansEndpoint delegate){
return new EndpointMvcAdapter(delegate);
}
@Bean
@Autowired
//define the mappings endpoint
public EndpointMvcAdapter requestMappingEndPoint(
RequestMappingEndpoint delegate
){
return new EndpointMvcAdapter(delegate);
}
}
Se si desidera eliminare una dipendenza aggiuntiva, fare riferimento al blogpost.
UPDATE
Inoltre è necessario assicurarsi di avere un fagiolo definito per RequestMappingHandlerAdapter, se non ce l'hai il ServletDispatcher non sarà in grado di recuperare l'adattatore per il gestore del vostro HealthMvcEndpoint.
se non avete semplicemente inserirlo al file di configurazione di fagioli
configurazioni XML:
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jsonConverter"/>
</list>
</property>
</bean>
<bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes" value="application/json" />
<property name="prettyPrint" value="true" />
</bean>
fonte
2015-09-30 22:23:34
Bene con parte la copia della configurazione e fagioli di primavera di avvio si dovrebbe essere in grado di. Ma perché non aggiungere semplicemente Spring Boot alla tua applicazione? Non perdi nulla che guadagni solo imho. –
Domanda correlata: http://stackoverflow.com/q/29953157/466738 –