@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为空就报错 ,否则正常返回 ,验证生效