当前位置: 首页 > 知识库问答 >
问题:

使用Spring靴执行器而不使用Spring靴[重复]

尹晟
2023-03-14

一定有一些方法来使用执行器的endpoint,但我不能电线他们。

我有一个JavaConfig类,如下所示

@Configuration
@ComponentScan(basePackages = { "com.company.helper", "org.springframework.boot" })
@EnableWebMvc
@Import({ DbConfig.class })

public class AppConfig extends WebMvcConfigurerAdapter {

}

但此配置在部署过程中引发错误。

没有Spring Boot应用程序,这种布线可以完成吗?

共有1个答案

雍志文
2023-03-14

我在这篇博客文章中添加了关于如何在非引导应用程序中添加Spring引导执行器的信息

在应用程序的build.gradle中,我添加了以下依赖项

compile('org.springframework.boot:spring-boot-actuator:1.2.5.RELEASE'){
    exclude group: 'org.springframework.boot', module:'spring-boot-starter-logging'}

在应用程序的Spring配置类中,我添加了以下内容:

 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);  
  }  
}  

如果你想摆脱一个额外的依赖,那么请参考博客帖子。

此外,您还需要确保为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>
 类似资料:
  • 我们有独立的Spring Boot应用程序,它触发一些基于触发器的石英作业。它是独立的jar文件,不涉及应用服务器。

  • 我的问题是:如何在使用Log4j2时查看所有记录器的完整列表,而不在Spring-boot应用程序中进行登录? 编辑:这里是我的pom.xml

  • 我在应用程序中添加了Spring Boot执行器,但现在我想添加由执行器创建的新服务(/health/metrics..)在我大摇大摆的文件上。 我不知道如何配置执行器和大摇大摆。

  • 在尝试url:http://localhost:8091/info时,它永远不会被解析。 是否不可能为独立应用配置执行器?

  • 我的问题是:有什么方法可以防止这种行为(意味着bean错误冲突)?或者至少在发生这种情况时得到警告消息。 提前感谢您的回答

  • 我有一个正在运行的Springboot应用程序,它提供URL并按预期返回JSON响应。 我添加了执行器依赖