文章目录
- lombok是什么?
- Lombok常用注解简介
- idea安装lombok插件
- idea创建demo-day-02项目
lombok是什么?
lombok是一个插件,它能通过注解帮我们消除那些必须要写但是重复的代码,比如setter、getter以及构造函数之类的方法。
试想一个场景,在项目开发中,我们往往需要定义大量的数据库实体或者某些工具Bean ,每一个Bean都需要我们编写 getter、setter、构造方法以及toString等方法,这是一个非常繁琐的过程。程序员的准则是做三遍以上的重复事情就必须想办法让它自动化了。所以今天介绍一个牛逼的插件lombok。
Lombok常用注解简介
- @Data: 注解在类上,将类提供的所有属性都添加get、set方法,并添加equals、canEquals、hashCode和toString方法
- @Setter: 注解在类上,为所有属性添加set方法,注解在属性上为该属性提供set方法
- @Getter: 注解在类上,为所有的属性添加get方法,注解在属性上为该属性提供get方法
- @NotNull: 在参数中使用时,如果调用时传了null值,就会抛出空指针异常
- @Synchronized: 用于方法,可以锁定指定的对象,如果不指定,则默认创建一个对象锁定
- @Log: 作用于类,创建一个log属性
- @Builder: 使用builder模式创建对象
- @NoArgsConstructor: 创建一个无参构造函数
- @AllArgsConstructor: 创建一个全参构造函数
- @ToStirng: 创建一个toString方法
- @Accessors(chain = true): 使用链式设置属性,set方法返回的是this对象。
- @RequiredArgsConstructor: 创建对象
- @UtilityClass: 工具类
- @ExtensionMethod: 设置父类
- @FieldDefaults: 设置属性的使用范围,如private、public等,也可以设置属性是否被final修饰
- @EqualsAndHashCode: 重写equals和hashcode方法
- @toString: 创建toString方法
- @Cleanup: 关闭流、连接点
idea安装lombok插件
idea创建demo-day-02项目
- pom.xml引入lombok包
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
- 新建person类
代码如下:
package com.demo.model;
public class Person {
private String id;
private String name;
private String age;
private String sex;
@Override
public int hashCode() {
return super.hashCode();
}
public Person(String id, String name, String age, String sex) {
this.id = id;
this.name = name;
this.age = age;
this.sex = sex;
}
@Override
public String toString() {
return "Person{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", age='" + age + '\'' +
", sex='" + sex + '\'' +
'}';
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
以上可以看出来,我们需要写很多代码,那我们要是使用lombok呢?
代码改造如下:
package com.demo.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
//自动生成set/get方法,toString方法,equals方法,hashCode方法,不带参数的构造方法
@Data
//自动生成构造方法
@AllArgsConstructor
//自动生成构造方法
@NoArgsConstructor
public class Person {
private String id;
private String name;
private String age;
private String sex;
}
使用了lombok看起来是不是更加简洁美观了。