前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot(四)SpringBoot中lombok使用

SpringBoot(四)SpringBoot中lombok使用

作者头像
用户1195962
发布2018-03-28 13:45:02
1.2K0
发布2018-03-28 13:45:02
举报
文章被收录于专栏:LanceToBigDataLanceToBigData

lombok概述

  • lombok简介 Lombok想要解决了的是在我们实体Bean中大量的Getter/Setter方法,以及toString, hashCode等可能不会用到,但是某些时候仍然需要复写,以期方便使用的方法;在使用Lombok之后,将由其来自动帮你实现代码生成,注意,其是 在运行过程中,帮你自动生成的 。就是说,将极大减少你的代码总量。
  • lombok作用 消除模板代码 getter、setter、构造器、toString()、equals() 便捷的生成比较复杂的代码,例如一个POJO要转化成构建器模式的形式,只需要一个注解。 SpringBoot中使用lombok
  1. 添加依赖 <!-- 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()); }
输入图片说明
输入图片说明

lombok的注解介绍 @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 推荐使用技巧

  • 在 Bean / Entity 类上使用 @Data 注解。
  • 需要使用 Log 对象的地方使用 @Log4j(依项目日志框架决定)。
  • 注意:lombok 的注解不能被继承。 IDEA中使用lombok 如果想让lombok生效我们还需要针对idea工具进行插件的安装,下面我们按照顺序打开Idea配置 File > Settings > Plugins > Browse repositories... > 输入lombok,插件就会被自动检索出来,如下图所示:
输入图片说明
输入图片说明

我的工具已经安装了该插件,所有在右侧是没有任何按钮的,如果你的工具没有安装该插件, 右侧会有一个绿色的按钮,按钮的内容则是Install,点击安装后重启Idea就可以了。 lombok常用注解详解

  • **@EqualsAndHashCode,@ToString** :告诉Lombok来生成 equals, hashCode方法,toString方法 在生成这些方法的时候lombok会使用所有的成员变量。
  • ** @AllArgsConstructor** :会自动创建一个包括所有成员的构造器。
  • **@Getter/@Setter**: 注解会为每一个标记的成员变量自动生成对应的方法。
  • 用例 ``` package com.jxlg.lance.springbootcorestudy.lombok;

import lombok.*;

/**

  • @author lance(ZYH)
  • @function 测试其他注解
  • @date 2018-03-22 12:27 */ @EqualsAndHashCode @ToString @AllArgsConstructor public class Student { @Setter @Getter private String stuName; @Setter @Getter private Integer stuAge; @Setter @Getter private String stuClass; @Setter @Getter private Integer stuNumber; } ```
  • 如果你不想将注解用在全部的成员变量上,而是仅仅部分变量上,那么你可以提供一个指定的哪一个成员变量需要 自动生成方法的变量。举例: 比如在这里,我们只想让stuName,stuAge两个成员变量出现在 toString 方法里。 @EqualsAndHashCode @ToString(of = {"stuName","stuAge"}) @AllArgsConstructor public class Student { @Setter @Getter private String stuName; @Setter @Getter private Integer stuAge; @Setter @Getter private String stuClass; @Setter @Getter private Integer stuNumber; }
  • 这些代码已经比我们一开始要好太多了,但是它任然不够简洁。这里重复了大量的 @Getter 和 @Setter 注解。 如果你只是需要在Class中仅暴露几个字段,那么使用它们非常方便,但如果您需要为所有字段生成访问器,则会变得烦人又无聊。 为了使代码更加简洁, Lombok永续我们在类级上使用这些注解。如果这些注解放在类名之上, 那么lombok会自动为我们生成所有字段的访问方法。 @EqualsAndHashCode @ToString @AllArgsConstructor @Setter @Getter public class Student { private String stuName; private Integer stuAge; private String stuClass; private Integer stuNumber; }
  • **@Buidler** :实例化这个类
  • 用例 ``` @EqualsAndHashCode @ToString @AllArgsConstructor @Setter @Getter @Builder public class Student { private String stuName; private Integer stuAge; private String stuClass; private Integer stuNumber; }

测试类: package com.jxlg.lance.springbootcorestudy.lombok;

import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4;

import static org.junit.Assert.*;

@RunWith(JUnit4.class) public class StudentTest {

代码语言:javascript
复制
@Test
public void test(){
    Student student = Student.builder()
            .stuName("张三")
            .stuAge(12)
            .stuClass("高三")
            .stuNumber(12222)
            .build();
    System.out.println(student);
}

}

结果: Student(stuName=张三, stuAge=12, stuClass=高三, stuNumber=12222)

代码语言:javascript
复制
-  **@Data** :简单的来说所有所有的注解我们都可以使用一个注解完成.也就是@Data<br>
我们在定义类的时候 只需要加一个 @Data 注解,其他的注解我们都不需要在添加就可以达到前面所说的所有功能。
- 通过上面介绍的,我们平常使用Lombok只需要这样就是就可以了,如下:

@Data @Builder public class User { private String name; private Integer age; } ```

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-03-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • lombok概述
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档