spring boot在Post接受一個對象參數的時候可以使用@Valid去驗證,如下代碼
在創建一個User類
上面的@NotBlank和@Past就做了一個判斷,如何做類似的注解用來驗證數據
創建一個MyConstraint的接口
@Retention :用來說明該注解類的生命周期。它有以下三個參數:
RetentionPolicy.SOURCE : 注解只保留在源文件中
RetentionPolicy.CLASS : 注解保留在class文件中,在加載到JVM虛擬機時丟棄
RetentionPolicy.RUNTIME : 注解保留在程序運行期間,此時可以通過反射獲得定義在某個類上的所有注解。
@Target : 用來說明該注解可以被聲明在那些元素之前。
ElementType.TYPE:說明該注解只能被聲明在一個類前。
ElementType.FIELD:說明該注解只能被聲明在一個類的字段前。
ElementType.METHOD:說明該注解只能被聲明在一個類的方法前。
ElementType.PARAMETER:說明該注解只能被聲明在一個方法參數前。
ElementType.CONSTRUCTOR:說明該注解只能聲明在一個類的構造方法前。
ElementType.LOCAL_VARIABLE:說明該注解只能聲明在一個局部變量前。
ElementType.ANNOTATION_TYPE:說明該注解只能聲明在一個注解類型前。
ElementType.PACKAGE:說明該注解只能聲明在一個包名前。
@Constraint來限定自定義注解的方法
這里寫的類是下面自定義的類
接口里面的方法是其他注解上都有這些方法,列如@Past
https://www.phpsong.com/3567.html