我在String Boot rest控制器上使用@Timed批注,并且工作正常。控制器的方法调用服务的方法,该方法也用@Timed注释。

但是,此后续Service Bean中方法的注释不起作用(我在/metrics中看不到结果)。为什么会这样呢?可以解决吗?

最佳答案

按照Support for @Timed in any Spring-managed bean #361,您可以通过手动注册 TimedAspect 来获得此行为。

@Configuration
@EnableAspectJAutoProxy
public class AutoTimingConfiguration {
  @Bean
  public TimedAspect timedAspect(MeterRegistry registry) {
    return new TimedAspect(registry);
  }
}

请注意,按照#361中的jkschneider注释:

我们可以通过Boot 2.1中的AOP或BPP重新访问@Timed的应用程序,具体取决于社区对此功能的反应。

07-26 09:39