### 关于前后端交互的注解
### @RestController
如果在类上加上@RestController注解,该类中所有SpringMVCurl接口映射都是返回json格式
        @RestController是SpringMVC提供的
相当于该类使用@Controller注解,并在类中的每个方法上都加上了@ResponseBody注解

### @ResponseBody
        @responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后(一般是将java对象转为json格式的数据),写入到response对象的body区,通常用来返回JSON数据。
### @RequestMapping
        @RequestMapping来映射URL
    注解 @RequestMapping 可以用在类定义处和方法定义处。
    类定义处:规定初步的请求映射,相对于web应用的根目录;
    方法定义处:进一步细分请求映射,相对于类定义处的URL。如果类定义处没有使用该注解,则方法标记的URL相对于根目录而言;

### @PostMapping
类似的还有
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping
相当于@RequestMapping(value = "/hello",method = {RequestMethod.POST})
指定了请求的方式

### @PathVariable
接收请求路径中占位符的值

### @RequestBody
使用@RequestBody注解可以在后端接收前端请求体中传来的json字符串中数据
在后台可以通过一个对象来接收这些数据
GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。

### @RequestParam
用于将指定的请求参数赋值给方法中的形参。
使用该注解从前端传递数据相当于在url后面通过?key1=value1&key2=value2传递参数

### MybatisPlus相关注解
### @TableName
映射数据库的表名

### @TableId
设置主键映射,value 映射主键字段名
type 设置主键类型,主键的生成策略
INPUT 如果开发者没有手动赋值,则数据库通过自增的方式给主键赋值,如果开发者手动赋值,则存入该值。
AUTO 默认就是数据库自增,开发者无需赋值。
ASSIGN_ID MP 自动赋值,雪花算法。
ASSIGN_UUID 主键的数据类型必须是 String,自动生成 UUID 进行赋值

### @TableField
映射非主键字段,value 映射字段名
exist 表示是否为数据库字段 false,如果实体类中的成员变量在数据库中没有对应的字段,则可以使用 exist

select 表示是否查询该字段
fill 表示是否自动填充,将对象存入数据库的时候,由 MyBatis Plus 自动给某些字段赋值,如在create_time、update_time等字段中

### @Param
mybatis注解,用于传递参数
### swagger相关注解

@Api(tags = "xxx模块说明")作用在模块类上,描述整个类的作用

@ApiOperation("xxx接口说明")作用在接口方法上,描述这个方法的作用。

@ApiModel("xxxPOJO说明")作用在模型类上:如VO、BO。

@ApiModelProperty(value = "xxx属性说明",hidden = true)作用在类方法和属性上,hidden设置为true可以隐藏该属性

@ApiParam("xxx参数说明")作用在参数、方法和字段上

@ApiImplicitParams用在请求的方法上,包含一组参数说明

@ApiImplicitParam:用在 @ApiImplicitParams 注解中,指定一个请求参数的配置信息    
    name:参数名
    value:参数的汉字说明、解释
    required:参数是否必须传

### 其他

### @SpringBootApplication
是启动注解,同时也具备扫描功能。在类上加上@SpringBootApplication注解
其扫包的范围为当前启动类同包,及其子包
### @Scheduled
@Scheduled注解是Spring Boot提供的用于定时任务控制的注解,主要用于控制任务在某个指定时间执行,或者每隔一段时间执行。注意需要配合@EnableScheduling使用,在启动类上加上@EnableScheduling注解

通过配合cron表达式可以指定该注解下的方法在什么时间执行
cron是@Scheduled的一个参数,是一个字符串,以5个空格隔开,只允许6个域(注意不是7个,7个直接会报错),分别表示秒、分、时、日、月、周。

cron通配符
示例
@Scheduled(cron = "0 * * * 1 SAT") //每年的1月的所有周六的所有0秒时间执行
@Scheduled(cron = "0 0 0 1 Jan ?") //每年的1月的1日的0时0分0秒执行