springboot+JSR303
文章目录
前言
每次校验都要写一堆判空语句,判断字段长度,例如下面的代码,是否觉得很多余、很繁琐?
JSR303校验将你从垃圾代码中解放出来。
正文
一、引入依赖
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-validation -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
二、在Controller的入参处加上@Valid关键字
@Controller
@RequestMapping("/login")
public class LoginController {
Logger logger = LoggerFactory.getLogger(LoginController.class);
@Autowired
private UserInfoSerivice userInfoSerivice;
@RequestMapping(value = "/doLogin", method = RequestMethod.POST)
@ResponseBody
public Result<LoginUser> login(@Valid @RequestBody LoginUser loginUser){
logger.info("loginUser:"+loginUser.toString());
LoginUser result = userInfoSerivice.getByUsername(loginUser.getUsername());
if (result==null){
return Result.error(CodeMsg.MOBILE_NOT_EXIST);
}
if (MD5Util.formPassToDBPass(loginUser.getPassword(),loginUser.getSalt()).equals(result.getPassword())){
return Result.success(result);
}else {
return Result.error(CodeMsg.PASSWORD_ERROR);
}
}
}
三、给参数对象添加需要的注解:
package xyz.haibofaith.miaosha.model;
import org.hibernate.validator.constraints.Length;
import xyz.haibofaith.miaosha.validator.IsMobile;
import javax.validation.constraints.NotNull;
/**
* @author:haibo.xiong
* @date:2019/5/14
* @description:
*/
public class LoginUser {
private Integer id