ich hinzugefügt habe Informationen darüber, wie Feder Boot-Aktuator in einer nicht-Boot-Anwendung in diesem Blog-Eintrag hinzufügen
http://givenwhenthen.blogspot.com/2015/09/adding-spring-boot-actuator-to-non.html
In der Klage der build.gradle , Fügte ich die folgende Abhängigkeit hinzu
compile('org.springframework.boot:spring-boot-actuator:1.2.5.RELEASE'){
exclude group: 'org.springframework.boot', module:'spring-boot-starter-logging'}
In der Spring Config-Klasse der Anwendung habe ich die folgenden Dinge hinzugefügt:
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);
}
}
Wenn Sie eine zusätzliche Abhängigkeit loswerden wollen, dann beziehen Sie sich bitte auf den Blogpost.
UPDATE
Auch müssen Sie Sie eine Bohne für RequestMappingHandlerAdapter definiert stellen Sie sicher haben, wenn Sie es nicht die ServletDispatcher nicht in der Lage sein müssen, den Adapter für den Handler Ihrer HealthMvcEndpoint zu holen.
wenn Sie nicht haben es fügen Sie ihn einfach zu Ihrer Bean-Konfigurationsdatei
xml Konfigurationen:
<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>
Nun mit dem Kopieren Teil der Konfiguration und Bohnen von Spring Stiefel Sie sollten in der Lage sein. Aber warum nicht einfach Spring Boot zu Ihrer Anwendung hinzufügen? Du verlierst nichts, du gewinnst nur Imho. –
Verwandte Frage: http://StackOverflow.com/Q/29953157/466738 –