什么是lombok?
lombok是一个java库,它会自动插入编辑器和构建工具中。它提供了一组有用的注解,消除了java类中大量的样板代码,使得代码干净整洁。
如何去使用lombok?
可以在lombok 的 maven仓库中找到并引入依赖
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
<scope>provided</scope>
</dependency>
</dependencies>
然后就可以直接使用lombok提供的注解了
lombok工作原理
lombok的注解是编译时生效的,即生成class文件之前,而SpringBoot注解则是执行.class文件时生效的。二者的区别在于前者改变了程序员编写的代码,而后者没有。
lombok安装
idea中不支持lombok语法,写上后无任何效果,所以需要安装一个插件:lombok
lombok常用注解
- @Data。它会默认为实体类提供get()、set()、toString()、equals()、hashcode()等方法。这是一个用在类上的注解
- @Getter、@Setter、@ToString。只生成对应注解名的方法
- @AllArgsConstructer。生成全参构造。如要生成指定参数的有参构造则需要手写。可用在属性上也可用在类上
- @NoArgsConstructer。生成无参构造。一般用了有参注解,则需要加一个无参注解,二者一般联用。这是一个用在类上的注解
- @Accessors。用来给类中set方法开启链式调用。其中chain属性是用来指定是否开启set方法链式调用的,true表示开始,false不开始。具体用法:
这是一个用在类上的注解@Accessors(chain = true) 实体类 / 实体类对象.setId("21").setName("张三").setAge(24);
- @Slf4j。用来快速给类中定义一个日志变量。默认变量名为log,所以该类中不能出现新的同名变量。该注解的作用等价于:
这是一个用在类上的注解private Logger log = LoggerFactory.getLogger(this.getClass()); //=========================================== log.infor("姓名:[{}],年龄:[{}]",name,age);//其中花括号为占位符