【问题标题】:Implement Spring Actuator in my Spring MVC app without adding Spring boot在我的 Spring MVC 应用程序中实现 Spring Actuator 而不添加 Spring Boot
【发布时间】:2019-03-31 06:14:28
【问题描述】:

目前我有一个使用 Spring MVC 的遗留项目。现在需要实现 Spring boot 执行器。所以我的问题是

  1. 我可以在我的 Spring MVC 应用程序中实现 Spring Actuator 而不添加 弹簧靴
  2. 我可以同时拥有 Spring Boot 和 Spring MVC 吗? 应用。如果是,那么如何。

如果有人可以描述它的逐步实现,那就太好了。 我正在使用 Eclipse、Gradle、Tomcat

【问题讨论】:

    标签: java spring eclipse spring-boot gradle


    【解决方案1】:

    回答您的第一个问题:

    1. 是的,您可以在 spring mvc 项目中使用执行器。将此添加到 pom.xml

      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-actuator</artifactId>
          <version>Compatible version with mvc</version>
      </dependency>
      
    2. 在下方添加配置

      @Configuration
      @EnableWebMvc
      @Import({EndpointAutoConfiguration.class , PublicMetricsAutoConfiguration.class , HealthIndicatorAutoConfiguration.class
      })
      public class MyActuatorConfig {
      
          @Bean
          @Autowired
          public EndpointHandlerMapping endpointHandlerMapping(Collection<? extends MvcEndpoint> endpoints) {
            return new EndpointHandlerMapping(endpoints);
          }
      
         @Bean
         @Autowired
         public EndpointMvcAdapter metricsEndPoint(MetricsEndpoint delegate) {
            return new EndpointMvcAdapter(delegate);
        }
      }
      

    2。回答你的第二个问题

    当然你可以使用Spring bootspring MVC,只是简单地把下面作为父级来管理所有依赖版本等。

    <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.6.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
    

    spring-boot-starter-web 作为依赖项。

       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    

    【讨论】:

    • 对于第一个答案步骤 2 - 您能在此处提及 spring servlet 中的条目吗?即要传递哪些值以使自动装配正常工作
    • 配置后 /actuator 端点应该可用并且对于指标 /metrics 相同
    • 但是如何配置呢?即我不明白第 2 步。你能详细描述一下吗?因为它有 @Autowired 注释,我们应该在哪里注入这些依赖项以及如何注入?我被困在那一点上。提前致谢
    • 创建此配置类后,您将可以访问执行器端点,您可以通过它们的端点调用该端点以获取有关指标等的信息,如果您想自定义信息默认结束品脱返回,那么请查看执行器文档,例如 EndpointHandlerMapping 是否可用作 bean。这足以配置执行器。
    • 类 EndpointAutoConfiguration、PublicMetricsAutoConfiguration、HealthIndicatorAutoConfiguration 仅通过 spring-boot-actuator 依赖没有得到解决。我认为它需要弹簧靴
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 1970-01-01
    • 2021-12-14
    • 2023-03-16
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多