本篇文章为大家展示了使用Spring boot怎么进行参数校验,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
使用注解进行校验
先定义一个form的封装对象
class RequestForm {
@Size(min = 1, max = 5)
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
其中name这个字段用Size注解限制长度1到5。Size是javax.validation包中的constraint注解。
在使用时用@Valid注解表示要校验这个bean。
@ResponseBody
@GetMapping(value = "bean")
public String validate(@Valid RequestForm request) {
System.out.println(request.getName());
return "OK";
}
自定义注解
如果内置的注解不够用,可以自定义注解。
比如先定义一个注解NameConstraint,限制name字段只能从特定数据中选取。
@Target({ ElementType.FIELD, ElementType.PARAMETER })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = NameConstraintValidator.class)
@interface NameConstraint {
String[] allowedValues();
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
String message();
}
其中allowedValues表示合法的取值范围,message是校验失败的显示信息。
message、groups、payload是hibernate validator要求的字段,想了解的请看官方文档
再定义一个validator做真正的校验
class NameConstraintValidator implements ConstraintValidator<NameConstraint, String> {
private String[] validValues;
@Override
public void initialize(NameConstraint constraintAnnotation) {
validValues = constraintAnnotation.allowedValues();
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
for (String s : this.validValues) {
if (s.equals(value)) {
return true;
}
}
return false;
}
}
在form bean中按如下方式使用
class RequestFormWithCustomConstraint {
@NameConstraint(allowedValues = { "bar", "foo" }, message = "只允许bar,foo")
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
直接校验参数
只有一个name字段,不想封装一个对象怎么办?可以直接校验该参数
@Controller
@Validated
@RequestMapping(value = "validator")
public class ParameterValidatorDemoController {
@ResponseBody
@GetMapping(value = "simple")
public String validateParameter(@Size(min = 1, max = 5) String name) {
System.out.println(name);
return "OK";
}
}
springboot一种全新的编程规范,其设计目的是用来简化新Spring应用的初始搭建以及开发过程,SpringBoot也是一个服务于框架的框架,服务范围是简化配置文件。
上述内容就是使用Spring boot怎么进行参数校验,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。