java – 在没有Spring Boot应用程序的情况下使用Spring Boot Act
发布时间:2020-12-14 05:36:42 所属栏目:Java 来源:网络整理
导读:具有生产信息端点的 Spring Boot的Actuator库对任何服务器应用程序都非常有用.但问题是我找不到集成到传统Spring应用程序(不是Spring BOOT应用程序)的方法. 必须有一些方法来使用执行器的端点,但我无法将它们连接起来. 我有一个JavaConfig类,如下所示 @Confi
具有生产信息端点的
Spring Boot的Actuator库对任何服务器应用程序都非常有用.但问题是我找不到集成到传统Spring应用程序(不是Spring BOOT应用程序)的方法.
必须有一些方法来使用执行器的端点,但我无法将它们连接起来. 我有一个JavaConfig类,如下所示 @Configuration @ComponentScan(basePackages = { "com.company.helper","org.springframework.boot" }) @EnableWebMvc @Import({ DbConfig.class }) public class AppConfig extends WebMvcConfigurerAdapter { } 但是此配置在部署期间会引发错误. 没有Spring Boot应用程序可以完成这种连线吗? 解决方法
我在此博客文章中添加了有关如何在非启动应用程序中添加spring boot执行器的信息
http://givenwhenthen.blogspot.com/2015/09/adding-spring-boot-actuator-to-non.html 在应用程序的build.gradle中,我添加了以下依赖项 compile('org.springframework.boot:spring-boot-actuator:1.2.5.RELEASE'){ exclude group: 'org.springframework.boot',module:'spring-boot-starter-logging'} 在应用程序的Spring Config类中,我添加了以下内容: 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); } } 如果你想摆脱一个额外的依赖,那么请参阅博客帖子. UPDATE 此外,您需要确保为RequestMappingHandlerAdapter定义了一个bean,如果您没有它,ServletDispatcher将无法为您的HealthMvcEndpoint的处理程序获取适配器. 如果你没有它只是将它添加到你的bean配置文件 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> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |