springboot如何进行接入参数验证
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇文章为大家展示了springboot如何进行接入参数验证,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。使用环境 jdk1.8 spring 4及以上1、添
千家信息网最后更新 2026年11月02日springboot如何进行接入参数验证
本篇文章为大家展示了springboot如何进行接入参数验证,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
使用环境 jdk1.8 spring 4及以上
1、添加jar 包
com.github.fashionbrot mars-validated 1.0.2
2、开启使用 valid 2种方式
@SpringBootApplication@EnableValidatedConfig(fileName = "test") // fileName 默认中文jar包自带 如需要批量自定义请自己创建 test.properties 放在自己项目中的resources 下public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); }}@Component@Configuration@EnableValidatedConfig(fileName = "valid_zh_CN") //默认读取 mars-validated resources 下的 valid_zh_CN,所以不写默认读取中文public class ValidConfig {}3、自定义实现全局异常处理
拦截 ValidatedException异常类
@RestControllerAdvice@Slf4jpublic class GlobalExceptionHandler { @ExceptionHandler(Exception.class) @ResponseStatus(HttpStatus.OK) public RespVo exception(Exception e) { log.error("exception error:",e); return RespVo.fail(RespCode.FAIL.getMsg()); } /** * 参数验证全局处理 * @param e * @return */ @ExceptionHandler(ValidatedException.class) @ResponseStatus(HttpStatus.OK) public RespVo ValidationException(ValidatedException e){ if (log.isDebugEnabled()){ log.debug("filedName:{} errorMsg:{}",e.getFieldName(),e.getMsg()); } return RespVo.fail(e.getMsg(),RespCode.PARAMETER_ERROR.getCode()); }}4、开始使用 @Validated //接口开启验证
@Controllerpublic class TestController { @Autowired private ValidService validService; @RequestMapping("/test") @ResponseBody @Validated //接口开启验证 public String test( String abc,@Custom(min = 1,msg="请求参数失败") String abc1){ return abc+":"+abc1; } //group 验证参数 @RequestMapping("/test1") @ResponseBody @Validated(groups = {EditGroup.class}) public String test1( @Custom(min = 1,groups = {EditGroup.class,AddGroup.class}) String abc1){ return abc1; } //group 验证 bean @RequestMapping("/test2") @ResponseBody @Validated(groups = AddGroup.class) public String test2(GroupModel groupModel){ return groupModel.getAbc(); }}5、注解
| Annotation | Supported data types | 作用 |
|---|---|---|
| NotBlank | String | 验证String 字符串是否为空 |
| NotNull | String,Object,Integer,Long,Double,Short,Float,BigDecimal, BigInteger | 验证对象是否为空 |
| NotEmpty | String | 验证字符串不能为空 |
| AssertFalse | Boolean,boolean,String | 只能为false |
| AssertTrue | Boolean,boolean,String | 只能为true |
| BankCard | String | 验证银行卡 |
| CreditCard | String | 验证信用卡 |
| Default | Integer,Double,Long,Short,Float,BigDecimal,String | 设置默认值 |
| Digits | String | 验证是否是数字 |
| String | 验证是否是邮箱 | |
| IdCard | String | 验证是否是身份证,验证18岁 |
| Length | int,long,short,double,Integer,Long,Float,Double,Short,String | 验证长度 |
| Pattern | String | 正则表达式验证 |
| Phone | String | 验证手机号是否正确 |
| Size | int,long,short,Integer,Long,Short | 验证大小值 |
| NotEqualSize | String | 验证长度 |
6、自定义注解
(1)定义注解
@Documented@Target({ElementType.FIELD, ElementType.PARAMETER})@Retention(RetentionPolicy.RUNTIME)@Constraint(validatedBy = {CustomConstraintValidator.class,CustomConstraintValidator2.class})//可对应多个或一个实现类//CustomConstraintValidator 实现类1//CustomConstraintValidator2 实现类2public @interface Custom {//com.sgr.valid.Custom.msg jar包下的 valid_zh_CN.properties 下对应的msg String msg() default "com.sgr.valid.Custom.msg"; int min(); Class>[] groups() default {};}(2)实现类 CustomConstraintValidator 如同 CustomConstraintValidator2
public class CustomConstraintValidator implements ConstraintValidator{ @Override public boolean isValid(Custom custom, Object var1) { /** * 自定义方法 */ int min=custom.min(); /** * valud */ System.out.println(var1); var1="567"; /** * return true 则验证成功 false 验证失败 */ return false; } //可实现对参数的修改 @Override public Object modify(Custom annotation, Object var) { System.out.println("CustomConstraintValidator:"+var); return var+"1"; }}
上述内容就是springboot如何进行接入参数验证,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
验证
参数
注解
接入
全局
内容
字符
字符串
技能
接口
知识
长度
中文
处理
简明
成功
简明扼要
作用
信用
信用卡
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司排名
金融科技创新监管互联网金融
凡科互联网科技
甘肃拓世互联网科技有限公司
海南购全球互联网科技
成都玖崟互联网科技有限公司乐商圈怎么样
中国科技互联网公司收入
银川新华互联网科技职业技术培训学校图片
杭州壁岐互联网科技有限公司
未来五年的互联网科技
华夏恒生互联网科技013171
科技互联网的核心竞争力
沐思想互联网科技有限公司
深圳无忧互联网科技
求路客互联网科技电话
科技信息时代互联网发展
科技和互联网行业的特点
互联网金融金融科技
东风日产互联网科技公司叫什么
北京瑞云互联网科技有限公司
小米移动互联网科技园
喔噻互联网科技有限公司
科技互联网创业计划书
科技大学互联网专业好不好
卫星互联网科技股票
互联网软件和科技
知域互联网科技有限公司大骗子
互联网金融科技公司的优势
现代科技的标志之一的互联网
株洲百竞科技的互联网营销顾问