java - 如何使用`@Backoff`注释中的属性文件中的属性来自定义延迟时间?
问题描述
如何使用@Backoff
注释中属性文件中的属性来自定义延迟时间?该属性只接受一个常量作为值。我尝试someProperty
使用构造函数注入来初始化字段,但这无济于事,IntellijIDEA 显示一条消息:“属性值必须是常量”。
此代码不会编译:
public class SomeClass {
private final long someProperty;
public SomeClass (@Value("${someProperty}") Long someProperty) {
this.someProperty = someProperty;
}
@Retryable(value = RuntimeException.class, maxAttempts = 2,
backoff = @Backoff(delay = someProperty))
public SomeObject getSomeObject() {
return new SomeObject();
}
}
我可以使用delayExpression
这样的属性:
@Retryable(value = RuntimeException.class, maxAttempts = 2,
backoff = @Backoff(delayExpression = "${someProperty}"))
解决方案
推荐阅读
- python - 我的 CI 作业以 root 身份创建 __pycache__,无法在下次运行时清理工作区
- ios - 无法使用 CGRect 更改 CollectionView 框架
- typescript - 打字稿重复 T 扩展 X 可能很麻烦,它们是更好的方法吗?
- latex - bookdown 的数学渲染下降了吗?
- php - while循环获得第二个值而不是第一个值?PHP MSQL SP FPDF
- android - 输入内容后编辑文本失去焦点
- python - 根据时差计算一天是否已经过去,如果有,则插入更新的日期
- javascript - Javascript - 从一个 switch 语句案例到另一个 switch 语句
- apache-spark-sql - 如何将 Databricks 中的 VALUES 插入表中
- spring-boot - Spring boot H2 从文件创建数据库模式