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

Java Micrometer @定时注释Spring reactive @Repository可能吗?

应嘉容
2023-03-14

关于千分尺@Timed注释的小问题,以及如何将其与Spring的反应@Repository一起使用。

我有一个非常简单的@Repository界面,甚至没有自定义查询。

@Repository
public interface MyRepository extends ReactiveCassandraRepository<MyPojo, String> {

这里的例子是用反应式Cassandra,但是任何反应式库都可以。

我想对默认方法的执行进行计时,保存、findById、findAll,基本上是@Repository提供的所有简单方法。

通过时间,我的意思是插入数据或检索数据所花费的实时时间。

(这对于查看高负载等情况下的读写性能非常有用...)

因此,我满怀希望地尝试:

@Repository
@Timed("mysupertimer")
public interface MyRepository extends ReactiveCassandraRepository<MyPojo, String> {

但遗憾的是,它不起作用。只是为了避免混淆,它不适用于存储库方法。我的@Controller层中有@Timed,而@Service层的不同位置,我可以看到所有其他指标。

另外,我真的希望得到一个关于注释@Repository的答案。我知道我可以对“我的项目中调用存储库的所有位置”进行@Timed,但我有300个调用存储库,需要向任何未来的贡献者解释,以注释他的调用。

直接在@Repository层上找到解决方案将是惊人的。

非常感谢!

共有1个答案

林德辉
2023-03-14

现在,SpringBoot 2.5.0的最新版本可以做到这一点

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.5-Release-Notes#timed-metrics-with-webflux

 类似资料:
  • 问题内容: 可以继承@Repository批注吗? 我可以创建一个 然后扩展它而不指定@Repository批注? 我如何知道注释是否可以继承? 问题答案: 参见http://www.docjar.com/html/api/org/springframework/stereotype/Repository.java.html 没有@Inherited批注,因此它不会被继承。

  • 我写了一个示例Spring启动应用程序,它无法运行消息 `描述:com中的customerRepository字段。hibernatetutorial。服务CustomerServiceImpl需要“com”类型的bean。hibernatetutorial。存储库。找不到CustomerRepository“”。 操作:考虑在您的配置中定义类型为“com.hibernatetutorial.re

  • 我有一个简单的类叫BeaconDao 然而,当我用@service或@component标记beaconDao时,一切都运行得非常好。有人能看出问题所在吗?

  • 问题内容: 我想知道是否可以在运行时设置注释变量? 问题答案: 不,那不可能。 注释以常量值的形式存储在类文件中,并且无法在运行时进行计算。 您能做的最好的事情就是存储有关如何计算值的某种“指令”。 例如,您可以使用某种脚本语言存储一个简单的表达式,然后在读取注释值时执行该表达式,或者可以指定要获取真实值的调用方法的名称。

  • 我的spring应用程序有点小问题。下面是我的代码: (存储库) 下面是我的简单服务类: 更新:配置

  • 问题内容: 我想使用Django建立一个简单的热门问题列表。我有一个函数,可以根据一些参数评估每个问题的“ 热度 ”。 功能看起来与此类似(此处为完整功能) 我的问题和投票模型(相关部分) 现在,它是正数或负数。热功能会收到正面投票数和负面投票数以及问题的创建日期。 我已经尝试过类似的方法,但是它不起作用。 我得到的错误是: 我理解该错误,但是我没有正确的方法。 问题答案: 您不能将python函