决定使用Lombok

版权声明:襄阳雷哥的版权声明 https://blog.csdn.net/FansUnion/article/details/88901347

Lombok好坏参半。

经过一段时间的思考,决定在自己的基础库和今后的项目中大量使用。

没使用1个注解,一定先把生成的代码研究清楚,知道其局限性。

在基础类库中,如果有问题,会传染到很多项目。

目前投入使用的第1个注解是: @Slf4j

Example: 
 @Slf4j
 public class LogExample {
 }
 
will generate: 
 public class LogExample {
     private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
 }
 
This annotation is valid for classes and enumerations.

这种自动生成工具,肯定只能说标准化等,一旦实现不好,用于产生各种bug。

最让我喜欢的点

 @Slf4j

很久以前,日志喜欢用log4j,后来转到了Slf4j更通用一些。

Lombok用@Slf4j注解,可以生成标准化的代码。

 @Slf4j
 public class LogExample {
 }
 

will generate:

 public class LogExample {
     private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
 }

这样可以强制,每个类里面,保持一致的写作和命名,而且不用自己手写了。

好坏参半的点

  @Getter @Setter

  好处说 自动生成getter setter,以前喜欢用Eclipse的自动生成。如果增加修改了字段,需要重新生成,很麻烦。

而Lombok很好地解决了这个问题。

但是也有弊端,经常喜欢用Eclipse Ctrl+Shift+G 找出一个方法的所有依赖,

用了Lombook,生成的代码,不方便看到,因而不容易找到 这个方法被用到的 所有地方。

可能不太好的点

 @EqualsAndHashCode 存在坑,需要注意。

Synchronized 代码中不经常使用同步语句。如果需要使用的时候,对代码的可读性、精确性 要求高点。

当你需要写 多线程或分布式代码的时候,语句写得不清晰,很容易出问题。

参考资料

使用lombok的利弊

https://blog.csdn.net/mediocre117/article/details/83141208

lombok踩坑与思考

https://www.cnblogs.com/wuyuegb2312/p/9750462.html

官方JavaDoc文档

https://projectlombok.org/api/overview-summary.html

Lombok

https://www.cnblogs.com/whhjava/p/7049731.html

Lombok原理分析与功能实现

https://blog.mythsman.com/2017/12/19/1/

Lombok

https://blog.csdn.net/zhwyj1019/article/details/82155135

猜你喜欢

转载自blog.csdn.net/FansUnion/article/details/88901347