有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaSpring引导控制器:度量中断请求映射

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

例如:

@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放在其他类的方法上也很好


共 (1) 个答案

  1. # 1 楼答案

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