Spring在Controller验证参数@Validated

要使用 Java 验证 API,我们必须添加一个 JSR 303 实现,例如 hibernate-validator

implementation group: 'org.hibernate.validator', name: 'hibernate-validator', version: '8.0.0.Final'

然后再 Controller 增加注解 @Validated

@Validated
public class GridController {
...
}

对需要验证的参数配置对应的注解,例如:@NotBlank @Size(max = 10) @Min @Max 等

@PostMapping(POST_TEST)
public JSONResponse<Boolean> test(
    @RequestParam @Min(value = 5,message = "最小ID不能小于5") int id) {
        log.info("GRID TEST ID = {}",id);
        return JSONResponse.success(true);
}

最重要的一点,是需要配置验证的执行器

@Bean
public MethodValidationPostProcessor methodValidationPostProcessor() {
    return new MethodValidationPostProcessor();
}

配置好之后,访问时,如果参数不符合要求,会抛出异常:

curl --location --request POST 'http://127.0.0.1:8011/grid/test?id=0'

异常信息

javax.validation.ConstraintViolationException: test.arg0: 最小ID不能小于5
	at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:120)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
...
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇