2
我有一類就是一個實體:如何從屬性文件導入值並在註釋中使用它?
Class.java
@Entity
public class Class {
@Id
@GeneratedValue
private Long id;
@NotNull
@Range(min = 0, max = 10)
private double value;
}
我想從該@Range
註釋去掉硬編碼值,並從配置文件加載它們。
constraints.properties
minVal=0
maxVal=10
這是我已經試過:
@Component
@Entity
@PropertySource("classpath:/constraints.properties")
public class Class {
@Value("${minVal}")
private final long minValue;
@Value("${maxVal}")
private final long maxValue;
@Id
@GeneratedValue
private Long id;
@NotNull
@Range(min = minValue, max = maxValue)
private double value;
}
我得到的錯誤是attribute value must be constant
。如何執行這些字段的初始化以獲得我想要的結果?
正如答案中提到的,你試圖做的事情可能是不可能的。但是,如果您需要根據Spring配置中的某些值驗證範圍,則可以編寫自定義驗證程序並向其中注入最小值和最大值。這將涉及更多的代碼而不僅僅是單個註釋,所以這些努力可能不值得,但如果你真的需要它,它可能是一條路 –