我來自開發REST API的.NET背景。現在使用spring引導來開發java REST項目。@Valid vs @Validated在Spring Boot Rest API @RequestBody
首先我在控制器@RequestBody上的驗證停止工作。在嘗試修復它時,我看到了不同的實現方式。那麼註釋@RequestBody的正確方法是什麼?
@Validated @RequestBody
或
@Valid @RequestBody
我來自開發REST API的.NET背景。現在使用spring引導來開發java REST項目。@Valid vs @Validated在Spring Boot Rest API @RequestBody
首先我在控制器@RequestBody上的驗證停止工作。在嘗試修復它時,我看到了不同的實現方式。那麼註釋@RequestBody的正確方法是什麼?
@Validated @RequestBody
或
@Valid @RequestBody
@Valid處於JSR-規範和@Validated是從彈簧的框架。
當您的程序應該與EJB/JSR Standard兼容時,請使用@VALID,否則您可以同時使用這兩個。
它們之間一般沒有太大的差別,@Valid
是從JSR-303標準,@Validated
是春季標準。根據spring文檔:
Spring提供了一個Validator接口,可用於驗證應用程序的所有層。在Spring MVC中,您可以將其配置爲用作全局驗證程序實例,以便在遇到@Valid或@Validated控制器方法參數時使用該實例,並且/或者通過@InitBinder方法將其用作控制器內的本地驗證程序。全局和本地驗證器實例可以組合起來提供複合驗證。
但也有差異,其中之一是,例如,如果你需要在你的驗證註解使用group
,你需要使用@Validated
,它不與@Valid
支持。
考慮添加文檔鏈接 – matthias