springboot中使用注解简化开发

使用@GetMapping注解描述参数获取方法

>
@RequestMapping(value = "/list",method = RequestMethod.GET)

表示*/list路径的controller层,通过get方法获取参数,可以简化为:

@GetMapping("/list")

使用@Validated注解对参数进行校验

一个数据传输对象UserAccount:

@Data
@ApiModel
public class UserAccount {
    /**
     * 用户名
     */
    @ApiModelProperty(value = "用户名")
    @Pattern(regexp = "^[a-zA-Z0-9_]{6,32}$", message = "用户名不符合规则(6-32位,仅可包含:字母大小写,数字,下划线)")
    private String username;
    /**
     * 昵称
     */
    @ApiModelProperty("昵称")
    @Pattern(regexp = "^[a-zA-Z0-9_]{6,32}$",message = "用户名不符合规则(6-32位,仅可包含:字母大小写,数字,下划线)")
    private String nickName;
    /**
     * 手机号
     */
    @ApiModelProperty("手机号")
    @Pattern(regexp = "^1[0-9]{10}$",message = "手机号是1开头的11位数字")
    private String phone;

}

一般用于登录校验,@pattern表示参数的规则,controller层:

@ApiOperation(value = "用户创建/注册")
    @PostMapping("/create")
    public HttpResult create(@RequestBody @Validated UserAccount userAccount,BindingResult bindingResult){
        if (bindingResult.hasErrors()){
            return HttpResult.fail(HttpFail.DTO_INVALID.getCode(),bindingResult.getFieldError().getDefaultMessage());
        }

前端会要求输入三个设定的参数:

{
"nickName": "string",
"phone": "1233456656",
"username": "string"
}

因为使用了@validate注解,所以不需要在代码中再写一堆if…else来做判断了,如果输入的参数不符合@pattern的匹配规则,会直接提示参数错误的原因,程序也不会因为异常而直接挂掉.除了@pattern,还有其他判断校验的注解:比如@NotNull,@NotBlank,具体的可以参考这篇文章中的数据校验.

使用@PathVariable注解在路由中动态传参

接口中配置路由@GetMapping(value = "/info/{id}"),要让方法体中的参数传到{id}中,可以这样:

public HttpResult info(@RequestBody @PathVariable("id") Integer id){
        if (id == 0){
            return HttpResult.fail(HttpFail.ID_ZERO_ERROR);
        }

@PathVariable后的参数名称要与路由中的名称相同,这个注解表明了方法中的参数要代替路由中的参数,实现动态路由传参.

你可能感兴趣的:(java)