Lombok
痛点
- 写
get
、set
、equals
等方法很痛苦 - IDEA工具等可以快速生成
get
、set
,但是不方便修改
Lombok
可以自动生成!!!
是什么
Lombok项目是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。仅五个字符(@Data)就可以替换数百行代码从而产生干净,简洁且易于维护的Java类。
原理
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
public @interface Data {
String staticConstructor() default "";
}
RetensionPolicy.SOURCE
表明在编译时生效
所以 pom.xml
中设置 <scope>provided</scope>
,即最终生成的项目中无需打包
常用注释
@Data
- 用在类上
- 用来生成对象中的
get
和set
方法,以及hashCode
、equals
、toString
@Getter,@Setter
- 用在类上
- 用来生成对象中的
get
和set
方法
@ToString
- 用在类上
- 用来生成
toString
方法
@AllArgsConstructor
- 用在类上
- 配合
NoArgsConstructor
- 生成全部参数构造方法和无参数构造方法
- 不能生成一部分的
@Accessors
- 用在类上
- 用来给类中的set方法开启链式调用
chain
属性用来指定是否开启
User user = new User();
user.setId(12).setName("xX").setXX("xx");
@Slf4j
- 用在类上
- 用来快速给类定义日志变量
以前:
@Controller
@RequestMapping("XXX")
public class TestController {
private Logger log = LoggerFactory.getLogger(this.getClass());
@Requestmapping("findAll")
public String findAll() {
log.info("进入findAll")
}
}
之后:
@Controller
@RequestMapping("XXX")
@Slf4j // 默认名称叫log
public class TestController {
@Requestmapping("findAll")
public String findAll() {
log.info("进入findAll")
}
}
原理:
相当于加了这句代码
private Logger log = LoggerFactory.getLogger(this.getClass());
安装
首先你需要在IDE中安装lombok相关的插件,然后:
Maven
<dependency>
<groupId>org.projectlombook</groupId>
<artifactId>lombok</artifactId>
<version>1.xx.xx</version>
<scope>provided</scope>
</dependency>
评论区