1.@Slf4j
@Slf4j是用作日志输出的,一般会在项目每个类的开头加入该注解,如果不写下面这段代码,并且想用log;添加了该注释之后,就可以在代码中直接饮用log.info( ) 打印日志了。
2.@RequiredArgsConstructor
在我们写controller或者Service层的时候,需要注入很多的mapper接口或者另外的service接口,这时候就会写很多的@Autowired注解,代码看起来很乱
lombok提供了一个注解:
@RequiredArgsConstructor(onConstructor =@_(@Autowired))或类上@RequiredArgsConstructor注解,写在类上可以代替@Autowired注解,需要注意的是在注入时需要用final定义,或者使用@notnull注解
private final Mapper1 mapper1;
private @notnull Mapper2 mapper2;
3.@RestController
@RestController 是@controller和@ResponseBody 的结合
@Controller 将当前修饰的类注入SpringBoot IOC容器,使得从该类所在的项目跑起来的过程中,这个类就被实例化。
@ResponseBody 它的作用简短截说就是指该类中所有的API接口返回的数据,甭管你对应的方法返回Map或是其他Object,它会以Json字符串的形式返回给客户端
4.@NoArgsConstructor : 生成一个无参数的构造方法
@AllArgsContructor: 会生成一个包含所有变量的构造方法,默认生成的方法是 public 的
@RequiredArgsConstructor: 会生成一个包含常量,和标识了NotNull的变量的构造方法。生成的构造方法是私有的private。(可能带参数也可能不带参数)
主要使用前两个注解,这样就不需要自己写构造方法,代码简洁规范。
5.@Builder
Builder使用创建者模式又叫建造者模式。简单来说,就是一步步创建一个对象,它对用户屏蔽了里面构建的细节,但却可以精细地控制对象的构造过程。@Builder 注释为你的类生成相对略微复杂的构建器API。 @Builder 可以让你以下面显示的那样调用你的代码,来初始化你的实例对象:@Builder 可以放在类,构造函数或方法上。 虽然放在类上和放在构造函数上这两种模式是最常见的用例,但 @Builder 最容易用放在方法的用例来解释。
6.@Schema(required = true)
required表示这个字段在你要插入的数据中必须出现。
7.@EqualsAndHashCode(callSuper = true)
该注解用于子类对象之间进行比较的时候
不加该注解的影响:子类对象属性值一致,但其继承的父类对象属性值不一致,在比较的时候会出现比较结果不对的情况。@EqualsAndHashCode(callSuper = true) 注解的作用就是将其父类属性也进行比较。
8.@Mapper(componentModel="spring")的用法:
加上@Mapper(componentModel="spring")之后可以使用字段之间的映射
source:源字段,target:映射的字段
如:
@Mapper(componetModel=componentModel="spring")
public interface MyTest(){
@Mappings({
@Mapping(source="",target="")
@Mapping(source="",target="")
})
UserDto toDto(User user);
}
9.@JsonProperty注解主要用于实体类的属性上,作用可以简单的理解为在反序列化的时候给属性重命名(多一个名字来识别)
10.@TableField
value属性
功能同TableId的value属性
注意:MP会自动将数据库中的下划线命名风格转化为实体类中的驼峰命名风格
例如,数据库中的列 create_time 和 update_time 自动对应实体类中的 createTime 和 updateTime
11.JsonSerializer
写一个类继承JsonSerializer 抽象类;然后在传输的实体类中的属性上;写一个类继承JsonSerializer 抽象类
实现其serialize()方法,然后在方法中写入转换规则即可
12. @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的)
而最常用的使用请求体传参的无疑是POST请求了,所以使用@RequestBody接收数据时,一般都用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。
注:一个请求,只有一个RequestBody;一个请求,可以有多个RequestParam。
13.@PreAuthorize("hasAuthority(' ')")
@PreAuthorize 注解,顾名思义是进入方法前的权限验证,@PreAuthorize 声明这个方法所需要的权限表达式,例如:@PreAuthorize("hasAuthority('sys:dept:delete')"),根据这个注解所需要的权限,再和当前登录的用户角色所拥有的权限对比,如果用户的角色权限集Set中有这个权限,则放行;没有,拒绝
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)