@Validated 和 @Valid 联合使用,完成service层参数校验
Posted 疯狂的毛驴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@Validated 和 @Valid 联合使用,完成service层参数校验相关的知识,希望对你有一定的参考价值。
实体类代码示例
@Data
public class ChargeDetailDTO {
/**
* 类别
*/
@NotBlank(message = "type不可为空")
private String type;
/**
* 名称
*/
private String item;
}
接口层示例
public interface TestService {
String testValidator(@Valid ChargeDetailDTO chargeDetailDTO);
}
service 代码示例
@Validated
public class TestServiceImpl implements TestService {
@Override
public String testValidator(@Valid ChargeDetailDTO chargeDetailDTO) {
return "ohyeah";
}
}
controller 层代码示例
@RestController
public class testController {
@Autowired
private ConfigService configService;
@GetMapping("/isthis")
public String test(String type){
ChargeDetailDTO chargeDetailDTO = new ChargeDetailDTO();
chargeDetailDTO.setType(type);
return configService.testValidator(chargeDetailDTO);
}
}
分析
如果入参 type为空就报错 ,否则正常返回 ,验证生效
以上是关于@Validated 和 @Valid 联合使用,完成service层参数校验的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot @Valid 和 @Validated 的区别及使用方法