springboot如何进行接入参数验证
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇文章为大家展示了springboot如何进行接入参数验证,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。使用环境 jdk1.8 spring 4及以上1、添
千家信息网最后更新 2025年12月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安全错误
数据库的锁怎样保障安全
32位机子装哪个数据库
数据库安全控制身份
网络安全防护 英语作文
双路机架服务器直销厂家
网络技术方面论文
云长网络技术有限公司
久大网络技术有限公司简介
清华大学出版社数据库技术
关于网络安全的作文可复制
为什么蓝鸟维修服务器注册不了
教育软件开发有什么用
宁夏清查数据库标准
互联网引导了哪些科技革命
冷速仪软件开发与设计
广州一诺互联网信息科技
yii2上传并保存到数据库
兴义联想服务器数据库
三年级语文手抄报网络安全
软件开发销售部
轻量服务器 安全
软件开发行业网上招聘培训
顺丰科技是互联网公司吗
rest请求从服务器取出资源
网络安全实验大学
计算机应用软件开发需要多久
党外代表人士数据库系统
通过网络安全检查提升了
c用什么软件开发
福尔摩斯下载软件开发
计算机网络技术读大专有用吗