java接口如何接受语音参数_Java 是如何优雅地实现接口数据校验的?
生活随笔
收集整理的這篇文章主要介紹了
java接口如何接受语音参数_Java 是如何优雅地实现接口数据校验的?
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
作者 |?無(wú)敵碼農(nóng)??責(zé)編 | 張文頭圖 | CSDN 下載自東方 IC來(lái)源 | 無(wú)敵碼農(nóng)(ID:jiangqiaodege)本篇文章給大家分享平時(shí)開(kāi)發(fā)中總結(jié)的一點(diǎn)小技巧!在工作中寫(xiě)過(guò) Java 程序的朋友都知道,目前使用 Java 開(kāi)發(fā)服務(wù)最主流的方式就是通過(guò) Spring MVC 定義一個(gè) Controller 層接口,并將接口請(qǐng)求或返回參數(shù)分別定義在一個(gè) Java 實(shí)體類(lèi)中,這樣 Spring MVC 在接收到 Http 請(qǐng)求(POST/GET) 后,就會(huì)自動(dòng)將請(qǐng)求報(bào)文自動(dòng)映射成一個(gè) Java 對(duì)象。這樣的代碼通常是這樣寫(xiě)的:@RestControllerpublic class OrderController { @Autowired private OrderService orderServiceImpl; @PostMapping("/createOrder") public CreateOrderBO validationTest(@Validated CreateOrderDTO createOrderDTO) { return orderServiceImpl.createOrder(createOrderDTO); }}這樣的代碼相信大家并不陌生,但在后續(xù)的邏輯實(shí)現(xiàn)過(guò)程中卻會(huì)遇到這樣的問(wèn)題:“在接收請(qǐng)求參數(shù)后如何實(shí)現(xiàn)報(bào)文對(duì)象數(shù)據(jù)值的合法性校驗(yàn)?”。一些同學(xué)也可能認(rèn)為這并不是什么問(wèn)題,因?yàn)榫唧w某個(gè)參數(shù)字段是否為空、值的取值是否在約定范圍、格式是否合法等等,在業(yè)務(wù)代碼中校驗(yàn)就好了。例如可以在 Service實(shí)現(xiàn)類(lèi)中對(duì)報(bào)文格式進(jìn)行各種 if-else 的數(shù)據(jù)校驗(yàn)。從功能上說(shuō)冗余的 if-else 代碼沒(méi)啥毛病,但從代碼的優(yōu)雅性來(lái)說(shuō)冗長(zhǎng)的 if-else 代碼會(huì)顯得非常臃腫。接下來(lái)的內(nèi)容將給大家介紹一種處理此類(lèi)問(wèn)題的實(shí)用方法。具體將從以下幾個(gè)方面進(jìn)行介紹:
使用@Validated 注解實(shí)現(xiàn) Controller 接口層數(shù)據(jù)直接綁定校驗(yàn);
擴(kuò)展約束性注解實(shí)現(xiàn)數(shù)據(jù)取值范圍的校驗(yàn);
更加靈活的對(duì)象數(shù)據(jù)合法性校驗(yàn)工具類(lèi)封裝;
數(shù)據(jù)合法性校驗(yàn)結(jié)果異常統(tǒng)一返回處理;
?程序員有錢(qián)了都干什么?買(mǎi)豪宅,玩跑車(chē),上太空!| 濤滔不絕
?分庫(kù)分表:TiDB,求別搶飯碗!
?他被稱(chēng)為印度“ IT 大王”,富可敵國(guó),卻精打細(xì)算如守財(cái)奴
?帶你「周游世界」的 MODNet 算法
?一文聊“圖”,從圖數(shù)據(jù)庫(kù)到知識(shí)圖譜
?紅帽"干掉" CentOS 8,CentOS Stream 上位
?科技?jí)艛嗾诔v向發(fā)展點(diǎn)分享點(diǎn)點(diǎn)贊點(diǎn)在看總結(jié)
以上是生活随笔為你收集整理的java接口如何接受语音参数_Java 是如何优雅地实现接口数据校验的?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 忽视大小写函数_使用率低但功能强大的6个
- 下一篇: 2020年秋计算机科学导论,南开大学《主