-
@PostMapping
对应接收参数的注解:@RequestBody
解释:一个类的时候,或者你不想你的参数直观的被用户看到,因为PostMapping,接收参数正常是放在Body里面的,而不是拼在请求地址后面的,所以相对来说要安全一点儿,所以涉及数据库的添加、修改信息等操作、适合用这个。
举例:手机号密码登录接口
@Data
@ApiModel("手机号密码认证参数")
public class LoginByPhonePassword {
@ApiModelProperty(value = "手机号码", required = true)
private String phone;
@ApiModelProperty(value = "用户密码", required = true)
private String password;
}
@ApiOperation("手机号密码登录")
@PostMapping("/loginByPhonePassword")
public void loginByPhonePassword(@Valid @RequestBody LoginByPhonePassword loginByPhonePassword){
//TO-DO U R thing
}
-
@GetMapping
对应接收参数的注解:@RequestParam 、@PathVaiable
解释:参数是拼接在请求地址后面的,如果你觉得你要传输到后端接口的东西是无关紧要的而且数量很少,就一个两个,用GetMapping确实还是比较方便的。
举例:根据ID查询用户信息
@ApiOperation("根据ID查询个人信息")
@GetMapping("/getUserInfoById")
public void loginByPhonePassword(@RequestParam("id") Integer id ){
//TO-DO U R thing
}
-
@ApiOperation swagger注解
1.@ApiOperation不是spring自带的注解是swagger里的
2.注解@ApiOperation 和@ApiParam是用来构建Api 文档的
3.@ApiOperation(value="接口说明",httpMethod="接口请求方式",response="接口返回参数类型",notes="接口发布说明");其他参数可参考源码
4.@ApiParam(required ="是否必须参数",name="参数名称",value="参数具体描述")
@ApiOperation(value = "分页获取 农村保洁-积分审核 列表")
@ApiImplicitParams({
@ApiImplicitParam(name = "size", value = "页面大小,默认10", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "current", value = "当前页码,默认1", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "kw", value = "关键字", dataType = "String", paramType = "body"),
@ApiImplicitParam(name = "status", value = "审核状态 0-未审核 1-已审核 2-已驳回 4-审核中", dataType = "String", paramType = "body"),
@ApiImplicitParam(name = "type", value = "积分类型 当前卫生", dataType = "String", paramType = "body"),
@ApiImplicitParam(name = "zid", value = "镇id", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "cid", value = "村庄id", dataType = "int", paramType = "query"),
// @ApiImplicitParam(name = "audit_status", value = "审核状态 0-未审核 1-已审核 2-已驳回 4-审核中", dataType = "int", paramType = "query"),
})
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
</dependency>
-
@Transactional spring中管理事务一般使用
-
@Resource和@Autowired 都是为了装配Bean,但是两者在使用上又有少许区别
1.@Autowired是默认按照类型装配Bean,当需要用名称装配时,可以在@Autowired后面使用@Qualifier注解指定name属性,来告知容器加载哪个bean
2.@Resource默认按照名字装配Bean,即会按照name属性的值来找到具有相同id的Bean Definition 并注入。如果@Resource没有指定name属性,则会根据这个将要被注入的属性的名字来进行Bean装配。这段话有点绕口,下面结合例子来展示。
@Autowired() @Qualifier("baseDao")
private BaseDao baseDao;
@Resource(name="baseDao")
private BaseDao baseDao;
-
@Data注解
@Data : 注解在类上, 为类提供读写属性, 此外还提供了 get()、 set()、 toString()equals()、hashCode()、toString() 等方法。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
<scope>provided</scope>
</dependency>
其他相关注解:
@Data : 注在类上,提供类的get、set、equals、hashCode、toString等方法
@AllArgsConstructor :注在类上,提供类的全参构造
@NoArgsConstructor :注在类上,提供类的无参构造
@Setter :注在属性上,提供 set 方法
@Getter :注在属性上,提供 get 方法
@EqualsAndHashCode :注在类上,提供对应的 equals 和 hashCode 方法
@Log4j/@Slf4j :注在类上,提供对应的 Logger 对象,变量名为 log
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("clean_integral_audio")
@ApiModel(value="CleanIntegralAudio对象", description="农村保洁-积分审核")
public class CleanIntegralAudio implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
-
@NoArgsConstructor和@AllArgsConstrutor注解
是lombok插件生成不同构造方法的注解,来完成项目中不同构造方法的需求。
@NoArgsConstructor : 生成一个无参数的构造方法
@AllArgsContructor: 生成一个包含所有参数的构造方法
-
@EqualsAndHashCode注解(待更新)
-
@Accessors 注解
他是lombok 插件包中的一个注解
(1)该注解主要作用是:当属性字段在生成 getter 和 setter 方法时,做一些相关的设置。
(2)当它可作用于类上时,修饰类中所有字段,当作用于具体字段时,只对该字段有效。
该字段共有三个属性,分别是 fluent,chain,prefix,下面我们分别来说明下,他的意思分别是什么?
1、fluent 属性
不写默认为false,当该值为 true 时,对应字段的 getter 方法前面就没有 get,setter 方法就不会有 set。
2、chain 属性
不写默认为false,当该值为 true 时,对应字段的 setter 方法调用后,会返回当前对象
3、prefix 属性
该属性是一个字符串数组,当该数组有值时,表示忽略字段中对应的前缀,生成对应的 getter 和 setter 方法。比如现在有 xxName 字段和 yyAge 字段,xx 和 yy 分别是 name 字段和 age 字段的前缀。
那么,我们在生成的 getter 和 setter 方法如下,它也是带有 xx 和 yy 前缀的。
如果,我们把它的前缀加到 @Accessors 的属性值中,则可以像没有前缀那样,去调用字段的 getter和 setter 方法。
-
@TableName 是mybatis-plus中的注解,主要是实现实体类型和数据库中的表实现映射
当数据库名与实体类名不一致或不符合驼峰命名时,需要在此注解指定表名(不加这个注解默认将实体类的小写形式在db中寻找)
-
@Service注解 在类上 使用该注解,表示其是一个Service