如果API这样设计的话经测试,@Valid无法发挥作用
这种情况是情况1的进阶,这样设计至少@Valid能够发挥作用了但是太麻烦,需要专门写一个UserList类简直不优雅。同时外接的JSON需要需偠多套一层如下
多一层"users"对调用方来说也是麻烦。
情况1那样子设计行不通的原因是java.util.List(ArrayList)内部通过持有一个数组来保存对象们,而作为Java官方的类内部肯定不会在数组上声明@Valid,所以内部的对象们没有得到应有的递归校验
所以,考虑使用一种新的java.util.List实现来变相的达到列表校驗的效果。
实现了上述的效果后直接在list上声明一个@Valid就解决所有问题了。
发布了2 篇原创文章 · 获赞 11 · 访问量 1万+