使用注解简化开发

使用@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<User> info(@RequestBody @PathVariable("id") Integer id){
        if (id == 0){
            return HttpResult.fail(HttpFail.ID_ZERO_ERROR);
        }

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值