lombok
什么是lombok
- 是一款小巧的代码生成工具
- 自动生成
getter
与setter
方法- 提高开发效率
- 代码简洁,直观,减少大量冗余代码
- 减少后期的维护成本
安装lombok
- 下载lombok:https://projectlombok.org/download
- 在
eclipse
中安装 lombok 插件- 为了让 eclipse 认识 lombok 语法
安装方式
- 进入到
cmd
命令行下,运行 jar 包,输入如下命令:- 输入如下命令之前你必须在 lombok 文件目录当中不然运行的时候找不到对应的包
- 这都是计算机的基本知识了我就不在一一说明了
- 并且选择指定的 eclipse
java -jar lombok.jar
安装jar包原理
- 把 jar 拷贝到 eclipse 当中
- 在 eclipse.ini 文件当中做了两行配置
- 我这里提供几篇参考文章给你们如下:
intellij IDEA中安装
注意: 默认在idea中是不支持lombok语法的, 写上之后没有任何效果, 需要在idea中额外安装插件才可以继续使用lombok
Plugins → 搜索 lombok 下载安装,安装完成重启 idea即可
安装完成之后出现如下问题的解决方案
解决方案如下图所示:
导入 lombok 的 jar 包
方式 One
- 直接把
jar
包拷贝到工程当中
- 然后编译一下,buildPath
- 这种方式的弊端,每一个工程都要拷贝一下这个
jar
包
方式 Two
- 把经常用的
jar
放到某一个地方,每一次要用,直接引用就行
- 右键工程 → Buildd Path → Config Build Path → Add Libraries
- 在弹出的对话框当中选择
User Library
用户自己的库
- 进入到添加界面,点击右侧添加,新建一个仓库,给仓库起一个名称
- 选择刚新建的仓库,点击右侧添加
jar
包,找到lombok
对应的 jar 包地址
- 然后就是使用 jar 包了
使用lombok
- 在类上添加注解,注解有如下
常用注解
注解:
注解名称 | 作用 |
---|---|
@Data | 添加该注解就相当于同时加上以下注解 @Setter @Getter @ToString @EqualsAndHashCode ,作用于类中 |
@Setter | 作用于属性上,自动生成 set 方法,也可直接作用于类上,代码全部属性都添加 |
@Getter | 作用于属性上,自动生成 get 方法,也可直接作用于类上,代码全部属性都添加 |
@ToString | 生成 toString 方法,默认情况下,会输出类名、所有属性,属性会按照顺序输出,以逗号进行分割 |
@EqualsAndHashCode | 生成 equals 和 hascode 方法 |
@NoArgsConstructor | 生成无参构造器 |
@AllArgsConstructor | 生成全参构造器 |
@Accessors | 用在类上, 用来给类中set方法开启链式调用 chain属性: 用来指定是否开启SET方法链式调用 true 开启 false 不开启 |
@Slf4j | 用在类上, 用来快速给类中定义一个日志变量 |
@Builder | 用在类上,可以链式的构建JavaBean |
@RequiredArgsConstructor | 生成包含必须参数的构造函数,使用 @NonNull 注解的类属性为必须参数 |
@UtilityClass | 标记静态方法类,final 类,自动生成一个私有无参构造函数,方法、内部类、变量 标记成 statis |
- 使用方式如下:
/**
* @author: BNTang
**/
@Data
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
public class Goods {
@Getter
private String goods_name;
@Setter
private String goods_price;
private Date goods_date;
}
- 当然
@Getter
@Setter
注解也可以放在类上面,代码所有属性都需要生成 Get,Set 方法
@Slf4j
在对应类上加入这个注解相当于在这个类中声明了一个日志对象如下所示:
private Logger log = LoggerFactory.getLogger(this.getClass());
然后你就可以使用这个日志对象进行打日志了。
@Accessors
用在类上, 用来给类中set方法开启链式调用 chain属性: 用来指定是否开启SET方法链式调用 true 开启 false 不开启
@Data
@Accessors(chain = true)
public class User {
private String id;
private String name;
private Integer age;
private Date bir;
}
User user = new User();
user.setId("21").setName("BNTang").setAge(23).setBir(new Date());
@Builder
用在类上,可以链式的构建JavaBean
@Data
@Builder
public class User {
private String id;
private String name;
private Integer age;
private Date bir;
}
User user = User.builder().id("21").name("BNTang").age(23).bir(new Date()).build();