当前位置: 首页 > 面试题库 >

没有spring启动的spring启动执行器

苏浩瀚
2023-03-14
问题内容

我一直在研究Spring / Spring MVC应用程序,并且希望添加性能指标。我遇到过Spring Boot Actuator,它看起来是一个不错的解决方案。但是我的应用程序不是Spring Boot应用程序。我的应用程序在传统容器Tomcat 8中运行。

我添加了以下依赖

// Spring Actuator
compile "org.springframework.boot:spring-boot-starter-actuator:1.2.3.RELEASE"

我创建了以下配置类。

@EnableConfigurationProperties
@Configuration
@EnableAutoConfiguration
@Profile(value = {"dev", "test"})
@Import(EndpointAutoConfiguration.class)
public class SpringActuatorConfig {

}

我什至可以按照StackOverflow另一篇文章的建议在每个配置类上添加


问题答案:

你可以在没有spring套的情况下使用执行器。将此添加到pom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-actuator</artifactId>
    <version>1.3.5.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>4.3.5.RELEASE</version>
</dependency>

然后在你的配置类中

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


 类似资料:
  • Spring Boot Actuator中存在一个错误,如果使用了某些属性,在暴露处的就绪endpoint和处的活动endpoint时不起作用。您会得到一个白标签错误页面。 此应用程序没有显式的/错误映射,因此您将其视为回退。 这些属性包括: 默认情况下,我需要使用管理端口,以便可以使用执行器/指标进行监控。因此,为了进行可靠的健康检查,我需要在主/应用程序端口上公开活动性和就绪性endpoint

  • 我用的是Spring靴。为了监视JVM内存,我正在使用Spring Boot Actuator的/metricsendpoint。 我无法理解键实际上代表什么: 有人能告诉我它们到底是什么吗? CMS(并发标记扫描)和MarkSweepCompact相同吗?我应该使用CMS(并发标记扫描)吗?或者我应该使用哪种GC算法?

  • 我正在使用Spring Cloud网关为Spring Boot微服务创建网关。网关还负责使用Spring Security进行JWT授权。 此筛选器在配置方法中注册,如下所示: 如您所见,Spring Security性使用HttpServletRequest、HttpServletResponse和FilterChain接口,这些接口属于Spring启动程序web。但这是主要的问题,因为它与Sp

  • 我目前正在开发一个部署在heroku中的Spring Boot应用程序。该应用程序在同一回购协议上有两个主要项目(前端和后端)。我设法用node运行了前端。js和(技术上)也成功地运行了spring boot应用程序。 根据日志,一切似乎都正常,但当我访问应用程序时,它返回一个HTTP 500,声称没有运行Web进程。 但当我和heroku ps联系时 这是我的文件: 它声明两个进程(一个用于前端

  • 我正在使用一个Maven多模块,其中一场战争取决于另一场战争。 Spring Boot webapp依赖于只提供html文件的基本webapp。 当我运行SpringBoot应用程序时,我能够从主webapp(SpringBoot应用程序)访问服务和html,但是我不能从DependencyWar(404)访问html文件。但是这些html文件在SpringBootWebApp战争中得到了很好的打

  • 我决定回到我的想法,将Kafka指标与Spring Boot Actuator集成,我在这里已经提到: https://github.com/spring-projects/spring-boot/issues/6227 到目前为止,我有一个单独的“沙盒”项目和工作代码,我想将其合并到Spring Boot中。现在我有点困惑了。我的部分测试需要powermock来模拟Kafka的“超级安全”类: