springboot 提供公共方法校验传入参数 if(StringUtils.isEmpty(daCustomer.getCustomerName())) { rest.setCode(-1); rest.setMessage("用户姓名不能为空"); } if(StringUtils.isEmpty(daCustomer.getCustomerAddress())) { rest.setCode(-1); rest.setMessage("用户地址不能为空"); }
时间: 2024-04-05 12:30:07 浏览: 49
这段代码使用了 StringUtils 工具类的 isEmpty 方法对传入的参数进行了非空校验,并在校验不通过时返回错误码和错误信息。虽然这种方式可以校验参数是否为空,但是对于更加复杂的校验场景,这种方式可能会显得比较繁琐。因此,建议使用 Spring Boot 提供的校验注解或自定义校验注解等方式进行参数校验,并在 Controller 层进行统一的异常处理,提高代码的可读性和可维护性。
相关问题
springboot 优化一下提供公共方法校验传入参数 if(StringUtils.isEmpty(daCustomer.getCustomerName())) { rest.setCode(-1); rest.setMessage("用户姓名不能为空"); } if(StringUtils.isEmpty(daCustomer.getCustomerAddress())) { rest.setCode(-1); rest.setMessage("用户地址不能为空"); }
可以使用 Spring Boot 提供的校验注解来优化代码,例如使用 @NotBlank 注解进行非空校验,@Valid 注解进行校验,同时在方法参数中添加 BindingResult 对象,用于接收校验结果,从而更加清晰地处理校验结果。代码示例如下:
```
@PostMapping("/customer")
public RestResponse<Customer> createCustomer(@RequestBody @Valid Customer customer, BindingResult bindingResult) {
RestResponse<Customer> rest = new RestResponse<>();
if (bindingResult.hasErrors()) {
StringBuilder errorMsg = new StringBuilder();
bindingResult.getAllErrors().forEach(error -> {
errorMsg.append(error.getDefaultMessage()).append(";");
});
rest.setCode(-1);
rest.setMessage(errorMsg.toString());
return rest;
}
// 业务逻辑处理
return rest;
}
```
在上述代码中,@Valid 注解用于对方法参数进行校验,BindingResult 对象用于接收校验结果。如果存在校验不通过的情况,可以通过遍历 bindingResult 中的所有错误信息并拼接错误信息,最终返回错误码和错误信息。这种方式可以让代码更加简洁、易读,同时也提高了代码的可维护性。
优化一下验证实体类参数方法 public ResultRespone saveYhda(@RequestBody DaCustomer daCustomer,@RequestBody DaMeter daMeter ) { //获取最大用户编号 Map<String ,Object> map= daCustomerMapper.selectMaxCustomerNo(); int yhbh=Integer.parseInt(map.get("CUSTOMER_NO").toString())+1; daCustomer.setCustomerNo(String.valueOf(yhbh)); daCustomer.setCustomerNoOld(String.valueOf(yhbh)); ResultRespone<Object> rest = new ResultRespone<>(); if(StringUtils.isEmpty(daCustomer.getCustomerName())) { rest.setCode(-1); rest.setMessage("用户姓名不能为空"); } if(StringUtils.isEmpty(daCustomer.getCustomerAddress())) { rest.setCode(-1); rest.setMessage("用户地址不能为空"); }
可以使用 Spring Boot 提供的校验注解来优化代码,例如使用 @NotBlank 注解进行非空校验,@Valid 注解进行校验,同时在方法参数中添加 BindingResult 对象,用于接收校验结果,从而更加清晰地处理校验结果。代码示例如下:
```
@PostMapping("/save")
public ResultRespone saveYhda(@RequestBody @Valid DaCustomer daCustomer, @RequestBody @Valid DaMeter daMeter, BindingResult bindingResult) {
//获取最大用户编号
Map<String ,Object> map = daCustomerMapper.selectMaxCustomerNo();
int yhbh = Integer.parseInt(map.get("CUSTOMER_NO").toString()) + 1;
daCustomer.setCustomerNo(String.valueOf(yhbh));
daCustomer.setCustomerNoOld(String.valueOf(yhbh));
ResultRespone<Object> rest = new ResultRespone<>();
if (bindingResult.hasErrors()) {
StringBuilder errorMsg = new StringBuilder();
bindingResult.getAllErrors().forEach(error -> {
errorMsg.append(error.getDefaultMessage()).append(";");
});
rest.setCode(-1);
rest.setMessage(errorMsg.toString());
return rest;
}
// 业务逻辑处理
return rest;
}
```
在上述代码中,@Valid 注解用于对方法参数进行校验,BindingResult 对象用于接收校验结果。如果存在校验不通过的情况,可以通过遍历 bindingResult 中的所有错误信息并拼接错误信息,最终返回错误码和错误信息。这种方式可以让代码更加简洁、易读,同时也提高了代码的可维护性。
阅读全文