Appearance
Spring Boot 整合 Lombok 1
本节目标:理解“Spring Boot 整合 Lombok 1”的核心思路,并能把它用于实际开发或面试表达。 ==整合==
Lombok==还是比较简单的,只需要在==Spring Boot==项目的==pom.xml==依赖文件中添加==Lombok==的依赖即可:==
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.8</version> <scope>provided</scope> </dependency>==这里我用到的是== 1.18.8 ==版本,你可以根据需求自己修改这个版本号。== ==定义一个== POJO ==并添加== @Data ==注解:==
@Data public class NewBeeMallPOJO { private String title; private int number; private Date createTime; }==之后你就可以在其它类中构造== NewBeeMallPOJO ==类以及调用其中的== getter/setter toString() ==等方法了。==
NewBeeMallPOJO newBeeMallPOJO = new NewBeeMallPOJO(); newBeeMallPOJO.setNumber(2); System.out.println(newBeeMallPOJO.toString());
@Data==注解是一个比较霸道的注解,它不仅能够生成== POJO ==类所有属性的== get() ==和== set() ==方法,此外还提供了==equals==、==canEqual==、==hashCode==、==toString ==方法。== ==如果你不想要生成这么多内容,也可以使用其它的注解来实现你的需求:==
@Setter==注解在属性上,为属性提供==setting==方法==@Getter==注解在属性上,为属性提供==getting==方法==@Log4j==注解在类上,为类提供一个== ==属性名为==log==的==log4j==日志对象==@NoArgsConstructor==注解在类上,为类提供一个无参的构造方法==@AllArgsConstructor==注解在类上,为类提供一个全参的构造方法==@Builder==被注解的类加个构造者模式==@Synchronized==加同步锁==@NonNull==如果给参数加个这个注解== ==参数为==null==会抛出空指针异常==@Value==注解和==@Data==类似,区别在于它会把所有成员变量默认定义为==private final==修饰,并且不会生成==set==方法。==
==部分注解我也写了测试== demo==,如下所示。==
@AllArgsConstructor @ToString public class NewBeeMallPOJO3 { @Getter private String title; @Getter private int number; @Getter private Date createTime; }==主要是测试全字段构造方法、单独的== toString() ==方法以及字段的== getter ==方法:==
@Test public void testGetterAndToString() { NewBeeMallPOJO3 newBeeMallPOJO3 = new NewBeeMallPOJO3("Lombok==测试==
", 3, new Date());System.out.println(newBeeMallPOJO3.getTitle()); System.out.println(newBeeMallPOJO3.getNumber()); System.out.println(newBeeMallPOJO3.getClass()); System.out.println(newBeeMallPOJO3.toString()); }==构造者模式模式大家也可以注意一下,添加了== @Builder ==注解后就可以使用这种方式来构造类的实例,案例如下:==
@Builder public class NewBeeMallPOJO2 { private String title; private int number; private Date createTime; }
@Test public void testBuilder() { NewBeeMallPOJO2.NewBeeMallPOJO2Builder builder = NewBeeMallPOJO2.builder(); NewBeeMallPOJO2 newBeeMallPOJO2 = builder.number(1) .title("Lombok==测试==
") .createTime(new Date()) .build();System.out.println(newBeeMallPOJO2.toString()); }==以上所涉及到的源码已经整理好并上传到百度云,地址和提取密码如下:==``==链接==
: https://pan.baidu.com/s/1h3VUW2J2HBythGf-AeE9-g==提取码==
: vyty我对于 Lombok 这个工具的看法 ==对于类似== Lombok ==这种工具的使用,其实也有一些争论,有人觉得很方便推荐大家使用,也有些人会发表一些反对言论,什么破坏封装性啦、影响代码阅读性之类的言论等等,在这里我也说一下我的看法。==
- ==这个工具并不是非用不可,之前我也已经谈过,它就是一个工具而已。==
- ==使用这个工具确实会给开发者带来一些便利,简化了一些开发内容。==
- ==这个工具也有一些缺点,之前也谈过,我并不反对大家用这个工具,但是使用时一定要和队友沟通好。==
Lombok==只是一个工具而已,千万不要上纲上线。==
==总结下来,==Lombok ==有一些缺点,但是我们也不能忽视它的优点,工具就在这里,你爱用就用,不爱用就把相关依赖去掉,然后自己生成== POJO ==类的方法即可,反正这些方法的生成也都有快捷键,千万不要上纲上线,我就想问一句话,不用== Lombok==,你代码的封装性就有了?你代码的阅读性就能好了?不见得吧。== 总结 ==这节课主要介绍了== Lombok ==这个插件,从它的优缺点到它的整合,也解释了为什么在第一版本的新蜂商城项目中为什么没有使用== Lombok==,至于这个版本使用了== Lombok ==也是因为它的方便,现在这个版本的后端代码里有很多都用到了== Lombok ==的注解:==
==大家在下载源码后也能够看到,接下来的一篇文章我会介绍一下== Lombok ==插件安装时需要注意的事情,让大家都能够无困扰的使用== Lombok ==这个工具。== > 来自
<https://juejin.im/book/6844733826191589390/section/6844733826275475463>