参数校验放在controller还是service_@Validated校验的实践
spring-boot中可以用@validated來(lái)校驗(yàn)數(shù)據(jù),如果數(shù)據(jù)異常則會(huì)統(tǒng)一拋出異常,方便異常中心統(tǒng)一處理。
一、簡(jiǎn)單使用
1、Controller上開(kāi)啟驗(yàn)證
2、DTO上申明被驗(yàn)證的字段
a、聲明需要被校驗(yàn)的字段
3、附上部分標(biāo)簽含義
二、@Validated分組
1、Controller上開(kāi)啟驗(yàn)證
2、DTO上申明被驗(yàn)證的字段
a、創(chuàng)建分組接口類(lèi)
b、聲明需要被校驗(yàn)的字段
三、集合校驗(yàn)
如果我們直接使用java.util.Collection下的list或者set來(lái)接收數(shù)據(jù),參數(shù)校驗(yàn)并不會(huì)生效!我們可以使用自定義list集合來(lái)接收參數(shù):
1、包裝List類(lèi)型,并聲明@Valid注解
2、Controller上開(kāi)啟驗(yàn)證
四、嵌套校驗(yàn)
DTO類(lèi)里面的字段都是基本數(shù)據(jù)類(lèi)型和String類(lèi)型。但是實(shí)際場(chǎng)景中,有可能某個(gè)字段也是一個(gè)對(duì)象,這種情況先,可以使用嵌套校驗(yàn)。
1、DTO上申明被驗(yàn)證的字段
【注意】此時(shí)DTO類(lèi)的對(duì)應(yīng)字段必須標(biāo)記@Valid注解。
總結(jié)
以上是生活随笔為你收集整理的参数校验放在controller还是service_@Validated校验的实践的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: osgi框架和spring区别_最全15
- 下一篇: 今日头条适配方案_今日头条信息流广告创意