导言
集成 lombok 要注意一下如果你所在的公司都没有人用过 lombok 插件的时候,假如你自己想使用的话一定要先和组员报备一声免得
别的同事没有装插件照成编译错误,多多避免一些负面情绪
一、介绍 lombok
是一个在Java开发过程中用注解的方式,简化了 JavaBean 的编写,避免了冗余和样板式代码而出现的插件,让编写的类更加简洁。
上代码好理解
1. 不加lombok
如果没有lombok,实体类一般是这样的,要加构造方法和get/set方法,如果修改字段,更是要麻烦起来。比较冗余
package com.feng.user_manager.bean;
public class User {
private Integer id;
private String name;
public User(Integer id, String name) {
this.id = id;
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2. 使用lombok
使用 lombok之后,就是这样的。通过注解,自动生成构造函数和get/set方法。简化开发。
package com.feng.user_manager.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Integer id;
private String name;
}
3. 对比
对比之后,相信大家都能看出来,使用lombok 简化开发,那么接下来就开始配置
二、idea下载插件
- 点击idea的 file->setting
- 在插件(plugins)中搜索lombok,下载即可,在右边也能看到注解
- 安装后重启idea
三、配置依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
四、实战测试
1. 创建ResponseVO 实体类
package com.feng.user_manager.bean;
import lombok.Data;
@Data
public class ResponseVO {
private String name;
private String age;
private String phone;
}
2. 创建测试接口
package com.feng.user_manager.controller;
import com.feng.user_manager.bean.ResponseVO;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@GetMapping("/test")
public ResponseVO getPOJO(){
ResponseVO vo = new ResponseVO();
vo.setName("冯坚持");
vo.setAge("18");
vo.setPhone("15106757434");
return vo;
}
}
3. 接口调用
五、常用注解
@Getter and @Setter
@FieldNameConstants
@ToString
@EqualsAndHashCode
@AllArgsConstructor, @RequiredArgsConstructor and @NoArgsConstructor
@Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog, @Flogger, @CustomLog
@Data
@Builder
@SuperBuilder
@Singular
@Delegate
@Value
@Accessors
@Wither
@With
@SneakyThrows
@StandardException
@val
@var
experimental @var
@UtilityClass