成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用注解簡(jiǎn)化開發(fā)

young.li / 468人閱讀

摘要:使用注解描述參數(shù)獲取方法表示路徑的層通過(guò)方法獲取參數(shù)可以簡(jiǎn)化為使用注解對(duì)參數(shù)進(jìn)行校驗(yàn)一個(gè)數(shù)據(jù)傳輸對(duì)象用戶名用戶名用戶名不符合規(guī)則位,僅可包含字母大小寫,數(shù)字,下劃線昵稱昵稱用戶名不符合規(guī)則位,僅可包含字母大小寫,數(shù)字,下劃線

使用@GetMapping注解描述參數(shù)獲取方法
`@RequestMapping(value = "/list",method = RequestMethod.GET)`

表示*/list路徑的controller層,通過(guò)get方法獲取參數(shù),可以簡(jiǎn)化為:

 `@GetMapping("/list")`
使用@Validated注解對(duì)參數(shù)進(jìn)行校驗(yàn)
一個(gè)數(shù)據(jù)傳輸對(duì)象UserAccount:
@Data
@ApiModel
public class UserAccount {
    /**
     * 用戶名
     */
    @ApiModelProperty(value = "用戶名")
    @Pattern(regexp = "^[a-zA-Z0-9_]{6,32}$", message = "用戶名不符合規(guī)則(6-32位,僅可包含:字母大小寫,數(shù)字,下劃線)")
    private String username;
    /**
     * 昵稱
     */
    @ApiModelProperty("昵稱")
    @Pattern(regexp = "^[a-zA-Z0-9_]{6,32}$",message = "用戶名不符合規(guī)則(6-32位,僅可包含:字母大小寫,數(shù)字,下劃線)")
    private String nickName;
    /**
     * 手機(jī)號(hào)
     */
    @ApiModelProperty("手機(jī)號(hào)")
    @Pattern(regexp = "^1[0-9]{10}$",message = "手機(jī)號(hào)是1開頭的11位數(shù)字")
    private String phone;

}
一般用于登錄校驗(yàn),@pattern表示參數(shù)的規(guī)則,controller層:
@ApiOperation(value = "用戶創(chuàng)建/注冊(cè)")
    @PostMapping("/create")
    public HttpResult create(@RequestBody @Validated UserAccount userAccount,BindingResult bindingResult){
        if (bindingResult.hasErrors()){
            return HttpResult.fail(HttpFail.DTO_INVALID.getCode(),bindingResult.getFieldError().getDefaultMessage());
        }

前端會(huì)要求輸入三個(gè)設(shè)定的參數(shù):
`
{
"nickName": "string",
"phone": "1233456656",
"username": "string"
}
`
因?yàn)槭褂昧?b>@validate注解,所以不需要在代碼中再寫一堆if...else來(lái)做判斷了,如果輸入的參數(shù)不符合@pattern的匹配規(guī)則,會(huì)直接提示參數(shù)錯(cuò)誤的原因,程序也不會(huì)因?yàn)楫惓6苯訏斓?除了@pattern,還有其他判斷校驗(yàn)的注解:比如@NotNull,@NotBlank,具體的可以參考這篇文章中的數(shù)據(jù)校驗(yàn).

使用@PathVariable注解在路由中動(dòng)態(tài)傳參
接口中配置路由@GetMapping(value = "/info/{id}"),要讓方法體中的參數(shù)傳到{id}中,可以這樣:
public HttpResult info(@RequestBody @PathVariable("id") Integer id){
        if (id == 0){
            return HttpResult.fail(HttpFail.ID_ZERO_ERROR);
        }

@PathVariable后的參數(shù)名稱要與路由中的名稱相同,這個(gè)注解表明了方法中的參數(shù)要代替路由中的參數(shù),實(shí)現(xiàn)動(dòng)態(tài)路由傳參.

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/76333.html

相關(guān)文章

  • 使用 lombok 簡(jiǎn)化 Java 代碼

    摘要:使用可以大大減少代碼行數(shù),提高開發(fā)效率。提供了日志工具無(wú)參構(gòu)造器提供方法提供方法方法有參構(gòu)造器,參數(shù)按屬性定義順序傳入提供了空指針檢測(cè),會(huì)拋出異常 lombok 是一個(gè)第三方工具,提供了一些注解功能,可以幫助我們消除冗余、臃腫的 Java 代碼,比如 POJO 的 getter/setter 方法、構(gòu)造方法、hashcode 方法等。lombok 在編譯時(shí)根據(jù)注解生成具體的代碼,在虛擬...

    CloudwiseAPM 評(píng)論0 收藏0
  • 簡(jiǎn)化你的 Java 對(duì)象依賴

    摘要:通過(guò)控制反轉(zhuǎn),對(duì)象在被創(chuàng)建的時(shí)候,由一個(gè)調(diào)控系統(tǒng)內(nèi)所有對(duì)象的外界實(shí)體,將其所依賴的對(duì)象的引用傳遞給它。依賴注入接下來(lái)是分析注解和依賴并創(chuàng)建對(duì)象,注入依賴。 控制反轉(zhuǎn)(Inversion of Control,縮寫為IoC),是面向?qū)ο缶幊讨械囊环N設(shè)計(jì)原則,可以用來(lái)減低計(jì)算機(jī)代碼之間的耦合度。其中最常見的方式叫做依賴注入(Dependency Injection,簡(jiǎn)稱DI),還有一種方式...

    DangoSky 評(píng)論0 收藏0
  • Java 總結(jié)

    摘要:中的詳解必修個(gè)多線程問題總結(jié)個(gè)多線程問題總結(jié)有哪些源代碼看了后讓你收獲很多,代碼思維和能力有較大的提升有哪些源代碼看了后讓你收獲很多,代碼思維和能力有較大的提升開源的運(yùn)行原理從虛擬機(jī)工作流程看運(yùn)行原理。 自己實(shí)現(xiàn)集合框架 (三): 單鏈表的實(shí)現(xiàn) 自己實(shí)現(xiàn)集合框架 (三): 單鏈表的實(shí)現(xiàn) 基于 POI 封裝 ExcelUtil 精簡(jiǎn)的 Excel 導(dǎo)入導(dǎo)出 由于 poi 本身只是針對(duì)于 ...

    caspar 評(píng)論0 收藏0
  • Spring Boot 的簡(jiǎn)單教程(一) Spring Boot 項(xiàng)目的創(chuàng)建

    摘要:是由團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來(lái)簡(jiǎn)化新應(yīng)用的初始搭建以及開發(fā)過(guò)程。該框架使用了特定的方式來(lái)進(jìn)行配置,從而使開發(fā)人員不再需要定義樣板化的配置。使用的創(chuàng)建根據(jù)下面的圖片引道進(jìn)行項(xiàng)目創(chuàng)建即可。 一. 簡(jiǎn)單介紹一下Spring Boot 世界慣例,在學(xué)習(xí)一個(gè)框架之前,我們需要了解一下這個(gè)框架的來(lái)歷。 下面我們引用一下百度百科的解釋。 Spring Boot是由Pivotal團(tuán)隊(duì)提供的...

    chinafgj 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<