SpringBoot项目配置文件pom.xml引入依赖
<!--web依赖包,web应用必备-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
接口参数校验
public String getList(Term term) {
if (term.getPage() == null || term.getRows() == null) {
return "分页参数不能为空";
}
if (StringUtils.isEmpty(term.getAccountid())) {
return "账套id不能为空";
}
if (term.getName().length() < 6 || user.getAccount().length() > 11) {
return "账号长度必须是6-11个字符";
}
if (user.getPassword().length() < 6 || user.getPassword().length() > 16) {
return "密码长度必须是6-16个字符";
}
return "success";
}
参数校验写在业务层也没什么问题,但是参数一多,不免会显得冗杂,而且下面还要写业务逻辑,看起来不够整洁,这里不妨用Spring Validator和Hibernate Validator这两套Validator来进行方便的参数校验!这两套Validator依赖包已经包含在前面所说的web依赖包里了,所以可以直接使用。
Validator + BindResult进行校验
Validator可以非常方便的制定校验规则,并自动帮你完成校验。
public class Term{
@NotNull(message = "账套id不能为空")
private Long accountid;
@NotNull(message = "页码不能为空")
private Integer page;
@NotNull(message = "行数不能为空")
private Integer rows;
@NotNull(message = "用户账号不能为空")
@Size(min = 6, max = 11, message = "账号长度必须是6-11个字符")
private String name;
@NotNull(message = "用户密码不能为空")
@Size(min = 6, max = 11, message = "密码长度必须是6-16个字符")
private String password;
}
校验规则和错误提示信息配置完毕后,接下来只需要在接口需要校验的参数上加上@Valid注解,并添加BindResult参数即可方便完成验证。
这样当请求数据传递到接口的时候Validator就自动完成校验了,校验的结果就会封装到BindingResult中去,如果有错误信息我们就直接返回给前端,业务逻辑代码也根本没有执行下去。
此时,业务层里的校验代码就已经不需要了:
public String getList(Term term) {
//业务逻辑
return "success";
}