controller层:
@RestController
相当于@Controller + @ResponseBody,在controller层,将返回的数据以特定的格式返回给前端
@RequestMapping("/student")
@RequestMapping来映射URL,添加在controller类上充当一级目录的作用,添加在方法上默认类型请求为get等同于@GetMapping
@PostMapping
post请求方式
@GetMapping
get请求方式,可以在前端直接传送data对象,用@RequestBody来接收,也可以写在url里进行传递参数例如@GetMapping("/student/{id}"),而方法中只需要使用@PathVariable来接收即可,切记@PathVariable接收参数的名称必须要和url中的名称对应
例如:
@PostMapping("/student/{id}")
public ResultJson student(@PathVariable id,@RequestBody Student student){
}
@Autowired
可以理解为对某个类的自动装配,注入相关依赖
@ApiVersion(1)
表明API版本号
@PreAuthorize("hasAuthority('/student')")
是SpringSecurity提供的权限安全认证注解。是在进入方法前进行权限验证,@PreAuthorize 声明这个方法所需要的权限表达式
@ApiImplicitParams
作用在方法上,用于包含多个 @ApiImplicitParam,用法示例:
@ApiImplicitParams({@ApiImplicitParam(name = "Authorization", value = "Authorization token", required = true, dataType = "string", paramType = "header")})
各个参数说明:
1. name :参数名。
2. value : 参数的具体意义,作用。
3. required : 参数是否必填。
4. dataType :参数的数据类型。
5. paramType :查询参数类型,这里有几种形式:
path 以地址的形式提交数据
query 直接跟参数完成自动映射赋值
body 以流的形式提交 仅支持POST
header 参数在request headers 里边提交
form 以form表单的形式提交 仅支持POST
@PathVariable
我对这个注解的理解就是接收的参数名与url中的请求参数名必须一致,并且是必传参数
@RequestBody
@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的),所以只能发送POST请求。
GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。
在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。
@RequestBody 与@RequestParam()可以同时使用时,原SpringMVC接收参数的机制不变,只不过RequestBody 接收的是请求体里面的数据;而RequestParam接收的是key-value里面的参数,所以它会被切面进行处理从而可以用普通元素、数组、集合、对象等接收
domain层:
@Builder自动生成无参的构造函数
@Data自动生成get set方法
@TableName()表名注解,标识实体类对应的数据库表
@Table(type=IdType.AUTO)表的主键,自增
@TableField(fill = FieldFill.INSERT)当插入数据时,自动填充时间
@TableField(fill = FieldFill.INSERT_UPDATE)当更新数据时,自动更改时间
自动填充的这两个功能,都是基于MP的自动填充功能
@JsonFormat时间格式化注解,比如我们存储在mysql中的数据是date类型的,当我们读取出来封装在实体类中的时候,就会变成英文时间格式,而不是yyyy-MM-dd HH:mm:ss这样的中文时间,因此我们需要用到JsonFormat注解来格式化我们的时间。简而言之,将数据库中的data类型的时间格式化为yyyy-MM-dd HH:mm:ss。
@ApiModelProperty是swagger的注解,它的作用是添加和操作属性模块的数据
例如:
@ApiModelProperty(value = "创建时间") 参数类型为String,作用为此属性的简要描述。