Hibernate Validator 6.0.7.Final 之一(宣告Bean約束之field級別的約束)
阿新 • • 發佈:2018-11-24
bean校驗中的約束是通過Java註解的形式表現出來的(例如,@NotNull是一個非空約束),再細分的話,有4種類型的約束,它們分別是:field級別的約束、property級別的約束、容器元素的約束和類級別的約束。
本文講解第一種情況,也就是field級別的約束
- field級別的約束的例子
public class Car {
@NotNull
private String manufacturer;
@AssertTrue
private boolean isRegistered;
public Car (String manufacturer, boolean isRegistered) {
this.manufacturer = manufacturer;
this.isRegistered = isRegistered;
}
public String getManufacturer() {
return manufacturer;
}
public void setManufacturer(String manufacturer) {
this.manufacturer = manufacturer;
}
public boolean isRegistered() {
return isRegistered;
}
public void setRegistered(boolean registered) {
isRegistered = registered;
}
}
當使用field級別的約束的時候,hibernate validator會使用field訪問策略來訪問需要校驗的值,這意味著,校驗引擎直接訪問例項變數而不是通過呼叫屬性訪問方法(getter方法),即使屬性訪問方法存在也不行。
任何訪問級別的field都可以使用約束(public private等),但是static的不行。