idea环境下lombok插件的安装和使用
简介
Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法.虽说 IDEA 的插件可以自动生成 get/set/toString 方法,但是使用 Lombok 可以让代码更简洁。
下载Lombok的类库文件 lombok.jar
下载地址:https://projectlombok.org/download
将lombok.jar存储到执行项目的lib目录
- 首先在项目下新建lib目录(右击项目–>New–>Directory文件名为lib)
- 接下来把下好的lombok.jar复制到该目录文件下
将lombok.jar放到项目编译的环境下
- 接下来点击项目结构(File–>Project Structure)
- 点击Libraries–>+
- 点击Java–然后在目录下找到你创建的lib目录点击Lombok.jar–>OK
- 点击选择应用到的模块–>OK–>Apply
集成IDEA(idea安装lombok插件)
- 点击File -->Settings–>Plugubs(搜索lombok)点击Install
- 等待安装完成–Apply
- 点击重启(Restart)
使用lombok插件
- 在实体类上引入相关的注解就行了
- 我们来比较下引入插件和没有引入插件的代码量差别
没有引入lombok插件
public class User {
private Integer id;
private String username;
private Integer age;
public User() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", age=" + age +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
User user = (User) o;
return Objects.equals(id, user.id) &&
Objects.equals(username, user.username) &&
Objects.equals(age, user.age);
}
@Override
public int hashCode() {
return Objects.hash(id, username, age);
}
}
引入lombok插件
@Data
public class User {
private Integer id;
private String username;
private Integer age;
}
- 有哪些注解
下面介绍一下常用的几个注解:
- @Setter 注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法。
- @Getter 使用方法同上,区别在于生成的是getter方法。
- @ToString 注解在类,添加toString方法。
- @EqualsAndHashCode 注解在类,生成hashCode和equals方法。
- @NoArgsConstructor 注解在类,生成无参的构造方法。
- @RequiredArgsConstructor 注解在类,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull注解的字段。
- @AllArgsConstructor 注解在类,生成包含类中所有字段的构造方法。
- @Data 注解在类,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
- @Slf4j 注解在类,生成log变量,严格意义来说是常量。private static final Logger log = LoggerFactory.getLogger(UserController.class);
为新的项目添加lombok插件
- File–>Project Structure–>Libraries–>点击lombok右键Add to Modules
- 添加到你想添加的模块
Maven管理项目不用执行1,2,3直接在maven加入依赖就行
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
<scope>provided</scope>
</dependency>
官方注解链接:https://projectlombok.org/features/index.html