1. 程式人生 > >Hibernate Validator 6.0.7.Final 之一(宣告Bean約束之field級別的約束)

Hibernate Validator 6.0.7.Final 之一(宣告Bean約束之field級別的約束)

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的不行。