注解

注解

 

1.1·      @Data

 

配合Lombok插件使用,作用于类上,简化java代码编写,为该类提供读写属性。相当于Getter,Setter,equals,hashCode,toString方法

例如:

package com.lmt.qianping.shop.domain;
 
import lombok.Data;
 
import java.io.Serializable;
 
/**
 * @author Jensen
 * @Date 1/19/19 4:59 PM
 */
 
@Data
public class CbdDto implements Serializable {
    private Integer id;
    private String area;
    private String cbd;
  }

 

参考:https://blog.csdn.net/cauchy6317/article/details/102579274

2.1·      @Deprecated

若某类或某方法加上该注解之后,表示此方法或类不再建议使用,调用时也会出现删除线,但并不代表不能用,只是说,不推荐使用,因为还有更好的方法可以调用

3.1·      @Mapper

在接口类上添加了@Mapper,在编译之后会生成相应的接口实现类
添加位置:接口类上面。避免每个接口类上增加此注解,可以在主启动类上增加扫描@MapperScan注解

注:不使用@Repository注解,idea会报警告,提示找不到这个bean,直接忽略即可。

4.1·      @PathVariable

  通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过

1 @PathVariable("xxx") 绑定到操作方法的入参中。
2 
3 @RequestMapping("/getUser/{name}")
4 
5     public User getUser(@PathVariable String name){
6 
7         return userService.selectUser(name);
8 
9     }

5.1·      @requestBody

  通常处理content-type不是默认的application/x-www-form-urlcoded编码的内容,一般情况是json数据。@RequestBody接收请求体中的json数据;不加注解接收URL中的数据并组装为对象:

1 @PostMapping("/goodsList")
2 public Response getGoodslist(@RequestBody ParamGoodsDetailCondition Condition) {
3      }

6.1·      @RequestParam()

  指定的参数可以是普通元素、数组、集合、对象等等。只不过RequestBody 接收的是请求体里面的数据;而RequestParam接收的是key-value里面的参数,所以它会被切面进行处理从而可以用普通元素、数组、集合、对象等接收)。

       即:如果参数时放在请求体中,application/json传入后台的话,那么后台要用@RequestBody才能接收到;

        如果不是放在请求体中的话,那么后台接收前台传过来的参数时,要用@RequestParam来接收,或则形参前 什么也不写也能接收。

 

 

 

7.1·      @Valid

  注解可以实现数据的验证,你可以定义实体,在实体的属性上添加校验规则,而在API接收数据时添加@valid关键字,这时你的实体将会开启一个校验的功能。

 public String login(@Valid User user) {...}

 

8.1·      Swagger注解

参考路径:http://c.biancheng.net/view/5533.html

  •  @API

作用于类,表示标识这个类是swagger的资源

  tags="说明该类的作用,可以在UI界面上看到的注解"

    value="该参数没什么意义,在UI界面上也看不到,所以不需要配置"

 

@Api(tags = "商品列表服务")
public class GoodsDetailController {}
  • @ApiOperation:

用在请求的方法上,说明方法的用途、作用

    value="说明方法的用途、作用"

    notes="方法的备注说明,用于提示内容"

@ApiOperation(value = "商品列表", notes = "商品列表详情页面接口")
@PostMapping("/goodsList")
public Response getGoodslist(@RequestBody ParamGoodsDetailCondition Condition) {}
  •  @ApiModel()

用于类 ,表示对类进行说明,用于参数用实体类接收

   value -对象名
  description–描述

  • @ApiModelProperty()

用于方法,字段; 表示对model属性的说明或者数据操作更改
  value–字段说明
  name–重写属性名字
  dataType–重写属性类型
  required–是否必填
  example–举例说明
  hidden–隐藏

 

@ApiModel(value="user对象",description="用户对象user")

public class User implements Serializable{

    private static final long serialVersionUID = 1L;

     @ApiModelProperty(value="用户名",name="username",example="xingguo")

     private String username;

     @ApiModelProperty(value="状态",name="state",required=true)

      private Integer state;

      private String password;

      private String nickName;

      private Integer isDeleted;

 

      @ApiModelProperty(value="id数组",hidden=true)

      private String[] ids;

      private List<String> idList;

     //省略get/set

}

 

  • @ApiParam

用于 Controller 中方法的参数说明。使用方式代码如下所示。

  • value:参数说明
  • required:是否必填
@ApiOperation("新建(普通/组合)商品")
@PostMapping("/addGeneralGoods")
public Response addGeneralGoods(@Valid @RequestBody @ApiParam(value = "新建(普通/组合)商品参数", required = true) GoodsDetailsVO goodsDetailsVO) throws GoodsManageException {
    if(goodsDetailsVO==null ){
        return Response.failed(GoodsResultCode.GOODS_ADD_DATA_ISEMPTY);
    }
    goodsDetailService.insertGoods(goodsDetailsVO);
    return Response.success("ok");
}

 

  • ApiImplicitParam 和 ApiImplicitParams

用于方法上,为单独的请求参数进行说明。使用方式代码如下所示。

  • name:参数名,对应方法中单独的参数名称。
  • value:参数中文说明。
  • required:是否必填。
  • paramType:参数类型,取值为 path、query、body、header、form。
  • dataType:参数数据类型。
  • defaultValue:默认值。
@ApiOperation(value = "批量删除")

@ApiImplicitParam(name = "delGoodsBatchById", value = "批量删除商品", required = true, dataType = "GoodsDetails", paramType = "body")

@DeleteMapping("/delGoodsBatchById")

public Response delGoodsBatchById(@RequestBody @Valid List<GoodsDetails> goodsDetaislList) {

    if (goodsDetaislList == null || goodsDetaislList.isEmpty()) {

        return Response.failed(GoodsResultCode.GOODS_DEL_CONTENT_IS_EMPTY);

    }

    goodsDetailService.delGoodsInfo(goodsDetaislList);

    return Response.success("ok");

}

 

posted @ 2021-08-17 15:10  麦客*追风者  阅读(36)  评论(0)    收藏  举报