资讯专栏INFORMATION COLUMN

使用注解简化开发

young.li / 378人阅读

摘要:使用注解描述参数获取方法表示路径的层通过方法获取参数可以简化为使用注解对参数进行校验一个数据传输对象用户名用户名用户名不符合规则位,仅可包含字母大小写,数字,下划线昵称昵称用户名不符合规则位,仅可包含字母大小写,数字,下划线

使用@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后的参数名称要与路由中的名称相同,这个注解表明了方法中的参数要代替路由中的参数,实现动态路由传参.

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76333.html

相关文章

  • 使用 lombok 简化 Java 代码

    摘要:使用可以大大减少代码行数,提高开发效率。提供了日志工具无参构造器提供方法提供方法方法有参构造器,参数按属性定义顺序传入提供了空指针检测,会抛出异常 lombok 是一个第三方工具,提供了一些注解功能,可以帮助我们消除冗余、臃肿的 Java 代码,比如 POJO 的 getter/setter 方法、构造方法、hashcode 方法等。lombok 在编译时根据注解生成具体的代码,在虚拟...

    CloudwiseAPM 评论0 收藏0
  • 简化你的 Java 对象依赖

    摘要:通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用传递给它。依赖注入接下来是分析注解和依赖并创建对象,注入依赖。 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式...

    DangoSky 评论0 收藏0
  • Java 总结

    摘要:中的详解必修个多线程问题总结个多线程问题总结有哪些源代码看了后让你收获很多,代码思维和能力有较大的提升有哪些源代码看了后让你收获很多,代码思维和能力有较大的提升开源的运行原理从虚拟机工作流程看运行原理。 自己实现集合框架 (三): 单链表的实现 自己实现集合框架 (三): 单链表的实现 基于 POI 封装 ExcelUtil 精简的 Excel 导入导出 由于 poi 本身只是针对于 ...

    caspar 评论0 收藏0
  • Spring Boot 的简单教程(一) Spring Boot 项目的创建

    摘要:是由团队提供的全新框架,其设计目的是用来简化新应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。使用的创建根据下面的图片引道进行项目创建即可。 一. 简单介绍一下Spring Boot 世界惯例,在学习一个框架之前,我们需要了解一下这个框架的来历。 下面我们引用一下百度百科的解释。 Spring Boot是由Pivotal团队提供的...

    chinafgj 评论0 收藏0
  • Spring Boot 的简单教程(一) Spring Boot 项目的创建

    摘要:是由团队提供的全新框架,其设计目的是用来简化新应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。使用的创建根据下面的图片引道进行项目创建即可。 一. 简单介绍一下Spring Boot 世界惯例,在学习一个框架之前,我们需要了解一下这个框架的来历。 下面我们引用一下百度百科的解释。 Spring Boot是由Pivotal团队提供的...

    Moxmi 评论0 收藏0

发表评论

0条评论

young.li

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<