目录
@Builder 注解
为类生成相对略微复杂的构建器 API
它作用于类,将其变成建造者模式
可以以链的形式调用
初始化实例对象生成的对象是不可以变的,可以在创建对象的时候进行赋值
如果需要在原来的基础上修改可以加 set 方法,final 字段可以不需要初始化
它会生成一个全参的构造函数
@Builder
public class User {
private final Integer code = 200;
private String username;
private String password;
}
// 编译后:
public class User {
private String username;
private String password;
User(String username, String password) {
this.username = username; this.password = password;
}
public static User.UserBuilder builder() {
return new User.UserBuilder();
}
public static class UserBuilder {
private String username;
private String password;
UserBuilder() {}
public User.UserBuilder username(String username) {
this.username = username;
return this;
}
public User.UserBuilder password(String password) {
this.password = password;
return this;
}
public User build() {
return new User(this.username, this.password);
}
public String toString() {
return "User.UserBuilder(username=" + this.username + ", password=" + this.password + ")";
}
}
}
@Data注解
自动添加类中所有属性相关的 set 方法
自动添加类中所有属性相关的 get 方法
生成一个该类的构造方法,禁止无参构造
重写该类的toString()方法
重写该类的equals()和hashCode()方法
@Data
public class Test {
private Long id;
private String name;
private LocalDateTime createTime;
}
相当于
public class Test {
private Long id;
private String name;
private LocalDateTime createTime;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public LocalDateTime getCreateTime() {
return createTime;
}
public void setCreateTime(LocalDateTime createTime) {
this.createTime = createTime;
}
@Override
public String toString() {
return "Test{" +
"id=" + id +
", name='" + name + '\'' +
", createTime=" + createTime +
'}';
}
}
@TableName注解
用来将指定的数据库表和 JavaBean 进行映射
@TableId注解
是专门用在主键上的注解,如果数据库中的主键字段名和实体中的属性名,不一样且不是驼峰之类的对应关系,
可以在实体中表示主键的属性上加@Tableid注解,并指定@Tableid注解的value属性值为表中主键的字段名既可以对应上。
“value”:设置数据库字段值
“type”:设置主键类型、如果数据库主键设置了自增建议使用“AUTO”
@Excel注解(自定义的注解)
Excel导入Excel表中数据与实体类之间关联
Excel导出可参考将Excel表中数据导入数据库_C'z x的博客-CSDN博客
@TableField注解
值 描述
value 字段值(驼峰命名方式,该值可无)
update 预处理 set 字段自定义注入
condition 预处理 WHERE 实体条件自定义运算规则
el 详看注释说明
exist 是否为数据库表字段( 默认 true 存在,false 不存在 )
strategy 字段验证 ( 默认 非 null 判断,查看 com.baomidou.mybatisplus.enums.FieldStrategy )
fill 字段填充标记 ( FieldFill, 配合自动填充使用 )
@TableField(exist=false)
注解加在bean属性上,表示当前属性不是数据库的字段
如图我的数据库没有createTimeBegin和createTimeEnd,但我们可以使用这两个字段
@ApiModelProperty()注解
用于方法,字段; 表示对model属性的说明或者数据操作更改
value–字段说明
name–重写属性名字 ,
dataType–重写属性类型
required–是否必填
example–举例说明
hidden–隐藏
@Param()注解
表示给参数命名,名称就是括号中的内容。给参数命名,然后在映射文件中就能根据名称获取参数值了。
Test findById(@Param("id") Long id);
<select id="findById" resultType="tech.niua.admin.test.domain.Test">
select * from t_test where id = #{id};
</select>
当你使用了使用@Param注解来声明参数时,如果使用 #{} 或 ${} 的方式都可以,当你不使用@Param注解来声明参数时,必须使用使用 #{}方式。如果使用 ${} 的方式,会报错。
@Service注解
一般标注在service层的bean上,声明是service层
@Override注解
@Override是一个标识性注解
@Override这个注解只能注解方法,
@Override这个注解是给编译器参考的,和运行阶段无关 凡是java中的方法带有这个注解的,
编译器都会进行编译检查,如果这个方法不是重写父类的方法,编译器报错
@RestController注解
@RestController:相当于@Controller+@ResponseBody两个注解的结合,
返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController
这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面
只在类上加@Controller 没在方法加@ResponseBody会报错
在类上加入@RestController就不用在每个方法都加@ResponseBody了
@RequestMapping注解
这个注解会将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上。
并且一个处理请求地址映射的注解,可用在类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
@Autowired注解
@Autowired可以标注在属性上、方法上和构造器上,来完成自动装配。默认是根据属性类型,spring自动将匹配到的属性值进行注入,
然后就可以使用这个属性对象的方法。
@PreAuthorize
在需要进行权限控制的 controller 方法上添加权限控制
@ApiImplicitParams注解
@ApiImplicitParams:用在请求的方法上,表示一组参数说明
@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
name:参数名
value:参数的汉字说明、解释
required:参数是否必须传
paramType:参数放在哪个地方
header --> 请求参数的获取: @RequestHeader
query --> 请求参数的获取: @RequestParam
path(用于restful接口)--> 请求参数的获取: @PathVariable
body(不常用)
form(不常用)
dataType:参数类型,默认String,其它值dataType= "Integer"
defaultValue:参数的默认值
@GetMapping注解
处理get请求,传统的RequestMapping来编写应该是@RequestMapping(value = “/get/{id}”, method = RequestMethod.GET)
新方法可以简写为:
@GetMapping("/get/{id}")
前端只有发生GET请求才能找到这个方法
@PostMapping注解
:处理post请求,传统的RequestMapping来编写应该是@RequestMapping(value = “/get/{id}”,method = RequestMethod.POST)
新方法可以简写为:
@PostMapping("/get/{id}")
前端只有发生POST请求才能找到这个方法
@PathVariable注解
是用来赋予请求url中的动态参数,即:将请求URL中的模板变量映射到接口方法的参数上
@RequestBody注解
主要用来接收前端传递给后端的json字符串中的数据的
如果前端使用GET方式提交,则不能使用@RequestBody注解,因为GET方式提交时它无请求体;所以需要用POST方式进行提交。
在后端的同一个接收方法里面,@RequestBody与@RequestParam() 可以同时使用,但@RequestBody只能有一个,而@RequestParam()可以有多个。
不加@RequestBody获取不到前台传的参数
@RequestParam注解
@RequestParam:将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)
语法:@RequestParam(value=”参数名”,required=”true/false”,defaultValue=””)
value:参数名
required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。
defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值