首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@TImed with extraTags和@PathVariable

@TImed with extraTags和@PathVariable
EN

Stack Overflow用户
提问于 2019-05-01 14:36:34
回答 2查看 1.5K关注 0票数 0

我有一个带有如下注释的方法:

代码语言:javascript
复制
@Timed(value="timed", extraTags={"account", Account.getById(@PathVariable("id")}
public Info getInfo(@PathVariable("id") String id) {
    return Info.getById(id);
}

当然,上面的方法不起作用。希望你能明白我在做什么。将帐户标记设置为由Account.getById()返回的值的正确语法是什么?

EN

回答 2

Stack Overflow用户

发布于 2019-05-01 19:50:49

将值传递给@Timed或任何其他注释的方式是不可能的,就像你期望的那样。传递给任何批注的值必须是编译时间常量。

编译时间常量类似于:

代码语言:javascript
复制
private static final String tag = "account";

Account.getById()返回的值不是编译时间常量,因此无法被批注接受。

票数 3
EN

Stack Overflow用户

发布于 2019-05-21 21:52:22

我不相信您能够使用@Timed注释来完成您正在做的事情,但是您可以手动对该方法计时并执行您想做的事情。下面是一个示例:

代码语言:javascript
复制
.
.
.
@Autowired MeterRegistry meterRegistry;
.
.
.
public Info getInfo(@PathVariable("id") String id) {
    final Sample sample = Timer.start(meterRegistry);

    final Info info = Info.getById(id);

    sample.stop(Timer.builder("timed")
                     .tag("account", Account.getById(id)
                     .register(meterRegistry));
    return info;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55932486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档