Lombok作用:
项目中经常使用bean,entity等类,绝大部分数据类类中都需要get、set、toString、equals和hashCode方法,虽然eclipse和idea开发环境下都有自动生成的快捷方式,但自动生成这些代码后,如果bean中的属性一旦有修改、删除或增加时,需要重新生成或删除get/set等方法,给代码维护增加负担。而使用了lombok则不一样,使用了lombok的注解(@Setter,@Getter,@ToString,@@RequiredArgsConstructor,@EqualsAndHashCode或@Data)之后,就不需要编写或生成get/set等方法,很大程度上减少了代码量,而且减少了代码维护的负担。故强烈建议项目中使用lombok,去掉bean中get、set、toString、equals和hashCode等方法的代码。
1.一般bean用法:
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
注:
@Data = @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode 的合集。
@Builder builder模式创建对象
@NoArgsConstructor 无参构造器
@AllArgsConstructor 所有参数构造器
@EqualsAndHashCode(callSuper = true) equals & hashcode方法
@ToString(callSuper = true) tostring方法
@RequiredArgsConstructor 类中所有带有 @NonNull 注解的或者带有 final 修饰的成员变量生成对应的构造方法。
@Value 类会生成含所有参数的构造方法,get 方法,此外还提供了equals、hashCode、toString 方法。
2.Log打印: @Slf4j
@Data注解的作用相当于 @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode的合集。
@Slf4j 省去了代码中添加 getLogger 的如下代码: 注解在 类 上 为类提供一个 属性名为 log 的日志对象,提供默认构造方法。
private static final Logger log = LoggerFactory.getLogger(MessageProducerController.class);
注: 此处可以到 代码生成目录查看对应的class 看lombok注解对应的java生成代码
lombok 编译问题:
1.各种log方法飘红
2.set方法中红色波浪线提示:cannot resolve method xxx
3. Idea提示红色错误,但是编译可以通过并正常使用的[但是bean中无get set 方法] 直接调用时也没有提示,很蛋疼
问题原因: Idea未安装 Lombok plugin 插件
Fix方法: 让Lombok注解在编译阶段起到作用。
1.maven pom中引入 lombok依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.8</version>
<scope>provided</scope>
</dependency>
2.安装lombok plugin
## 2.1.远程网络安装 lombok plugin:
具体流程如图:
1.1
1.2
1.3
## 2.2 开启 Enable annotation processing
## 2.3 重启后 Idea
## 2.4 Bean中添加 @Data标签:
@Data = @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode 的合集。
可以看到已经生成相关 get set tostring Constructor方法了 -> 证明lombok插件生效
示例bean## 3.1 下载插件后本地安装 lombok plugin
插件下载地址:
https://plugins.jetbrains.com/plugin/6317-lombok-plugin
https://github.com/mplushnikov/lombok-intellij-plugin/releases --下载(注意idea版本对应)
参考:
官网地址:https://projectlombok.org/
https://projectlombok.org/features/all
https://blog.csdn.net/zhglance/article/details/54931430
https://zhuanlan.zhihu.com/p/34077671 -使用参考
网友评论