专栏首页芋道源码1024Spring Boot 集成 Lombok 让代码更简洁

Spring Boot 集成 Lombok 让代码更简洁

来源:http://t.cn/EcCcsOW

lombok的威力

简化代码

IntelliJ IDEA安装lombok插件

1.菜单栏 File > Settings > Plugins > Browse repositories…

安装插件

2.搜索 Lombok Plugin 安装后,重启IDEA即可生效

安装lombok

Spring Boot项目中使用lombok

1.添加lombok依赖

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.16.10</version>
</dependency>

2.编写一个实体类 User,使用@Data注解

@Data
public class User {
  private String name;
  private int age;
}

3.编写测试方法,测试@Data的作用

@Test
public void testUser(){
  User user = new User();
  user.setName("AnyCode");
  user.setAge(20);
  System.err.println(user.toString());
}

自动生产方法

其它简化代码的特性介绍

val : 最终局部变量 @NonNull : 让你不在担忧并且爱上NullPointerException @CleanUp : 自动资源管理:不用再在finally中添加资源的close方法 @Setter/@Getter : 自动生成set和get方法 @ToString : 自动生成toString方法 @EqualsAndHashcode : 从对象的字段中生成hashCode和equals的实现 @NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor 自动生成构造方法 @Data : 自动生成set/get方法,toString方法,equals方法,hashCode方法,不带参数的构造方法 @Value : 用于注解final类 @Builder : 产生复杂的构建器api类 @SneakyThrows : 异常处理(谨慎使用) @Synchronized : 同步方法安全的转化 @Getter(lazy=true) : @Log : 支持各种logger对象,使用时用对应的注解,如:@Log4j

推荐用法

1、在 Bean / Entity 类上使用 @Data 注解。 2、需要使用 Log 对象的地方使用 @Log4j(依项目日志框架决定)。

注意:lombok 的注解不能被继承。

本文分享自微信公众号 - 芋道源码(YunaiV)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-02-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Intellij IDEA 神器居然还有这些小技巧

    Intellij IDEA真是越用越觉得它强大,它总是在我们写代码的时候,不时给我们来个小惊喜。出于对Intellij IDEA的喜爱,我决定写一个与其相关的专...

    芋道源码
  • 为并发而生的 ConcurrentHashMap,基于 Java8 分析

    来源:cnblogs.com/yangming1996/p/8031199.html

    芋道源码
  • 某团面试题:JVM 堆内存溢出后,其他线程是否可继续工作?

    最近网上出现一个美团面试题:“一个线程OOM后,其他线程还能运行吗?”。我看网上出现了很多不靠谱的答案。这道题其实很有难度,涉及的知识点有jvm内存分配、作用域...

    芋道源码
  • ADO.NET实体框架连接串引发的异常:Unable to load the specified metadata resource

    在项目中使用Unity作为IOC串联整个项目,整合WCF,ADO.NET Entity Framework,最初表现为Unity无法构造对象,逐步排除后发现是在...

    张善友
  • C# devExpress BandedGridView属性 备忘

    乔达摩@嘿
  • python flask web开发实战

    路由: @app.route('/') def index(): return '<h1>hello</h1>'

    用户5760343
  • linux系统挂载磁盘、卸载磁盘、磁盘分区

    一、挂载磁盘     1.查看磁盘列表、查看是否有硬盘未被挂载:     >fdisk -l ?     可以看到/dev/sdb硬盘没有被挂载。     2....

    Sindsun
  • iOS 基本设备信息查询

    用户2554571
  • Java正则表达式中的十大问题

    使用正则表达式的一个常见问题是提取所有的数字到整数的数组。在Java中,\ d代表的一系列数字(0-9)。任何时候如果可能的话,使用预定义类将会使你的代码容易读...

    用户2192970
  • 【截胡谷歌】全球首款量产无人驾驶汽车发布,通用汽车抢滩L4

    【新智元导读】无人驾驶领域今天有大新闻:通用汽车联手Cruise发布首款量产无人驾驶汽车。此前,无人驾驶的商用和上路时间线的话语权都被拥有技术优势的科技公司把控...

    新智元

扫码关注云+社区

领取腾讯云代金券