【问题标题】:Spring Boot controllers: metrics break request mappingSpring Boot 控制器:度量中断请求映射
【发布时间】:2016-02-25 15:45:20
【问题描述】:

我正在尝试将 Dropwizard 指标添加到 Spring Boot 控制器方法中。

如下:

@RestController
@RequestMapping(value = "/api/plan")
@ExposesResourceFor(Plan.class)
public class PlanController implements RelProvider {

...
    @Timed(name = "my.metric")
    @RequestMapping(value = "/{id}", method = RequestMethod.GET, produces = "application/hal+json;charset=UTF-8")
    public ResponseEntity<Resource<Plan>> getPlan(@PathVariable String id) {
        Plan plan = service.getPlan(id);
        return createResponse(HttpStatus.OK, plan);
    }

一旦我将 @Timed(name = "my.metric") 添加到 任何 控制器请求处理方法 - 所有方法都开始响应 404。

没有@Timed 带注释的方法控制器可以正常工作。将@Timed 放在其他类的方法上也可以正常工作。

【问题讨论】:

    标签: java spring metrics


    【解决方案1】:

    问题出在 RelProvider 接口上。 您的代理需要是 CGLIB,而不是 JDK 动态代理。 您可以删除接口或更改 EnableMetrics 注释中设置的 proxyTargetClass=true。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-25
      • 2012-05-30
      • 1970-01-01
      • 2019-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多