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

@conditionalonbean不能与micrometer MeterRegistry一起正常工作

盛辰沛
2023-03-14

我正在尝试使用Micrometer从我的spring boot应用程序中公开度量。

以下配置由于某种原因不起作用:

@Configuration(proxyBeanMethods = false)
@AutoConfigureAfter({ MetricsAutoConfiguration.class, CompositeMeterRegistryAutoConfiguration.class })
@ConditionalOnClass(MeterRegistry.class)
@ConditionalOnBean(MeterRegistry.class)
public class SuperTestAutoConfig {
    @Bean
    public Object testBean() {
        return new Object();
    }
}

spring说:

SuperTestAutoConfig:
      Did not match:
         - @ConditionalOnBean (types: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) did not find any beans of type io.micrometer.core.instrument.MeterRegistry (OnBeanCondition)
      Matched:
         - @ConditionalOnClass found required class 'io.micrometer.core.instrument.MeterRegistry' (OnClassCondition)

但是对于完全相同的注释配置JVMMetricSautoConfiguration,它可以很好地工作:

@Configuration(proxyBeanMethods = false)
@AutoConfigureAfter({ MetricsAutoConfiguration.class, CompositeMeterRegistryAutoConfiguration.class })
@ConditionalOnClass(MeterRegistry.class)
@ConditionalOnBean(MeterRegistry.class)
public class JvmMetricsAutoConfiguration {}

日志说:

   JvmMetricsAutoConfiguration matched:
      - @ConditionalOnClass found required class 'io.micrometer.core.instrument.MeterRegistry' (OnClassCondition)
      - @ConditionalOnBean (types: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) found bean 'prometheusMeterRegistry' (OnBeanCondition)

完整的示例如下:https://filebin.net/gjxnwwksaqs1x8zg

共有1个答案

巫朝明
2023-03-14

原因是缺少此自动配置的spring.factors定义。在spring.factors中列出了这个类之后,它完全按照预期工作。

 类似资料:
  • 嗨,我想在日志模式中显示登录的用户ID、主机名、ip地址等。我也在使用log4j。我正在使用MDC。在我的主控制器中,我可以看到带有指定模式的日志,但在其他文件日志中,我无法看到模式,这是不是好像我在某个会话中设置了MDC,并在其他控制器中再次放置了上下文值?请建议。 log4j.properties 我还有其他不同的控制器。现在,主控制器中的logger语句在日志模式中显示上下文信息,但在其他控

  • 我对scrollview和GeometryReader有一些问题。我想要一张图片下的物品清单。每个项目都应该有以下宽度和高度: 我为我的用例尝试了两种方法。这是我的第一个代码结构: 我正在使用几何体读取器来获取VStack的宽度,因为它有一个填充,我不想获得滚动视图的全宽。 但对于GeometryReader,UI上只显示ForEach循环中的最后一项。而GeometryReader只有很小的高度

  • 根据它的Javadoc,将生成,其中的第一个值是subscribe和第一个next信号之间的经过时间。 以下测试不起作用 它将抛出异常: 我原以为经过的时间至少是1000ms,但结果只有11ms。

  • 问题内容: 在我编写的flask应用程序中,我使用了一个外部库,该库可以使用环境变量进行配置。注意:我自己编写了这个外部库。因此,如有必要,我可以进行更改。从命令行运行时,运行带有以下内容的烧瓶服务器: 一切都如预期。但将它部署到Apache后,用它不工作了。事实上,打印出到(所以它在Apache日志中显示出来显示,该wsgi过程似乎是在一个非常不同的环境(一个,好像是这样了。其实,它指向我的发展

  • pom.xml版本信息: SpringFox-Swagger2:2.5.0 昂首阔步-核心:1.5.10 springfox-swagger-ui:2.6.1 Springboot:1.5.3 我有一个项目与swagger2和Springboot。 没有@Aspect的项目代码工作得很好。 正确的结果: 但是当我添加以下代码时,swagger-ui没有显示test-api-impl。 swagge

  • Selenium版本:2.41.0(作为Nuget包安装)OS:Windows7浏览器:Firefox浏览器版本:32