所以我有两个参数被Spring @Value
注释注入。 minLength
和maxLength
。逻辑上minLength
不得高于maxLength
,反之亦然。这是我尝试但失败的原因。
抛出maxLength为0
的异常,但在application.properties
我将其设置为7
(在验证前经过测试)
private int minLength;
private int maxLength;
@Min(5)
@Value("${ com.manudcamera.webapi.uuid.minLength : 5} ")
private void setMinLength(int minLength) {
if ( minLength > this.maxLength ) throw new IllegalArgumentException("minimum length cannot be greater than maximum length | min len: " + minLength + " max len: " + this.maxLength);
this.minLength = minLength;
}
@Max(50)
@Value("${ com.manudcamera.webapi.uuid.maxLength : 15 }")
private void setMaxLength(int maxLength) {
if ( maxLength < this.minLength ) throw new IllegalArgumentException("maximum length cannot be greather than minimum length | min len: " + minLength + " max len: " + maxLength);
this.maxLength = maxLength;
}
答案 0 :(得分:2)
抱怨0的人是你的自定义验证码,因为在调用setMinavalue时,maxLength值尚未设置(因此为0)。
一种可能的方法是使用PostConstruct注释而不是进行交叉验证的自定义方法。
另一种可能的方法是实现自己的自定义验证器(在类级别应用),进行跨域验证。
答案 1 :(得分:-1)
您可以在bean类中添加以下注释。
@PropertySource(value = {"classpath:application.properties"})
并查看结果。