背景
在实际的项目开发中,当参数是List集合方式时,往往我们需要对List集合属性进行校验。
场景1
···
@PostMapping(“/preOrder”)
public Result doSomething(@RequestBody @Valid List list) throws Exception {
return orderService.doSomething(list);
}
···
如果是直接使用@Valid修饰这样的方式校验的话,经过测试,@Valid是无法发挥作用的。
场景2
···
@PostMapping(“/preOrder”)
public Result doSomething(@RequestBody @Valid OrderDTOList list) throws Exception {
return orderService.doSomething(list);
}
···
···
@Data public class OrderDTOList() {
@Valid private List orderDTOList;
}
···
这种情况是情况1的进阶,这样设计至少@Valid能够发挥作用了。但是太麻烦,需要专门写一个OrderDTOList类,简直不优雅。同时外接的JSON需要需要多套一层,如下:
···
{
“orderDTOList”:[
{
“userId”:“1”,
“productCode”:“A102”,