springboot - lombok
Lombox的引用:
- IDEA 2020最后一个版本,已经内置了Lombok插件
- SpringBoot 2.1.x之后的版本也在Starter中内置了Lombok依赖
引入包:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.18</version> <scope>provided</scope> </dependency>
- Lombok的scope=provided,说明它只在编译阶段生效,不需要打入包中。事实正是如此,Lombok在编译期将带Lombok注解的Java文件正确编译为完整的Class文件。
常用注解:
@Data | 注解在类上;提供类所有属性的getting和setting方法,此外还提供了equals、canEqual、hashCode 、toString 方法 |
@Setter | 注解在属性上;为属性提供setting方法 |
@Getter | 注解在属性上;为属性提供getting方法 |
@Slf4j | 注解在类上;为类提供一个属性名为log 的slf4j日志对象 |
@NoArgsConstructor | 注解在类上:为类提供一个无参的构造方法 |
@AllArgsConstructor | 注解在类上;为类提供一个全参的构造方法 |
@NonNull | 注解在参数上;如果该参数为null 会throw new NullPointerException(参数名); |
@Cleanup | 注释在引用变量前,自动回收资源 默认调用close方法 |
@SneakyThrows | 注解在方法上,为方法抛出指定异常 |
@Builder(toBuilder = true) | 声明实体,表示可以进行Builder方式初始化,备注1 |
- Builder备注1,赋值新对象
- Builder备注2,修改原对象的属性值,修改实体,要求在实体上添加@Builder(toBuilder = true)
使用方式:
- 方式1:
(toBuilder = true)