文档章节

lombok系列1:初识lombok

polly
 polly
发布于 2017/05/19 10:04
字数 779
阅读 130
收藏 0

官网:https://projectlombok.org/

什么是lombok

连官网都懒得废话,只给出了一句广告词:给你的java加点料(spice up your java)。

我们自己来总结一下:

lombok是一个ide插件,它可以让我们写更少的代码,而编译出更多的字节码。

也就是说,我们可以让我们编译出一个复杂的.class文件,而我们的.java文件很干净清爽。

为什么要使用lombok

首先,我们可以写更少的代码,而不影响其他类引用,方法一个不能少;

其次,lombok是编译周期参与的,运行时完全无依赖,对字节码而言无侵入;

代码review更简单,一目了然。

lombok适用场景

尤其适合pojo类,如普通的javabean、orm的实体类、json的实体类等。

有些功能如Log相关,适用于任意类。

spring Cloud已经引入为一个core组件,可以放心使用。

hello lombok

首先,我们按照传统的方式编写一个java bean,增加getter、setter、toString:

package com.pollyduan;

import java.util.Date;

public class User {
	private Integer id;
	private String userName;
	private String password;
	private String email;
	private Integer age;
	private Date signupTime;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

	public Date getSignupTime() {
		return signupTime;
	}

	public void setSignupTime(Date signupTime) {
		this.signupTime = signupTime;
	}

	@Override
	public String toString() {
		return "User [id=" + id + ", userName=" + userName + ", password=" + password + ", email=" + email + ", age="
				+ age + ", signupTime=" + signupTime + "]";
	}
}

然后写一个Main方法测试一下:

public static void main(String[] args) {
   User user=new User();
   user.setId(1001);
   user.setUserName("pollyduan");
   user.setPassword("123456");
   user.setEmail("pollyduan@pollyduan.com");
   user.setAge(30);
   user.setSignupTime(new Date());
   System.out.println(user);
}

我们用lombok改造一下,重点看一下main方法,使用起来完全一样。

package com.pollyduan;

import java.util.Date;

import lombok.Data;

@Data
public class User {
	private Integer id;
	private String userName;
	private String password;
	private String email;
	private Integer age;
	private Date signupTime;
}

没错,就是这么干净。

其他类使用该Bean的方法与前面完全一样。

如何安装插件

看了helloworld是不是有了用一下的冲动?如果使用该插件需要在ide安装插件,这里只针对eclipse开发环境进行说明,其他ide可以搜索一下,或者联系我。

下载插件

首先你要拿到一个lombok.jar,有几个途径:

1. 直接在官网下载;
2. 去maven仓库下载,比如:http://mvnrepository.com/
3. 直接在你的maven项目中拉取jar,然后去~/.m2中去找。

maven依赖配置:

<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.16.16</version>
</dependency>

注:该jar第一次安装完之后,以后编码时也需要引入到java build path中。

安装lombok

直接执行lombok.jar,如:

java -jar ~/.m2/repository/org/projectlombok/lombok/1.16.16/lombok-1.16.16.jar

会弹出一个窗口,选择你的eclipse目录,或者自己导航到eclipse.ini文件,点击"Install"即可。

使用lombok

插件安装后,重启eclipse,将lombok.jar添加到java build path中就可以了。

如果你使用maven,很好,将lombok添加到依赖中即可。

更多的使用技巧,下一篇详细介绍。有问题可以加Q群讨论:9040323

© 著作权归作者所有

共有 人打赏支持
polly
粉丝 150
博文 59
码字总数 70342
作品 0
海淀
高级程序员
IDEA快捷键拆解系列(八):Refactor篇

  这是IDEA快捷键拆解系列的第八篇。   以下是关于Refactor导航项及其每一子项的拆解介绍,其中,加粗部分的选项是博主认为比较重要的。 Refactor IDEA快捷键拆解系列(前言) IDEA快捷键...

mario阿东
03/19
0
0
刚了解到的Lombok,记一下

前言: 逛开源社区的时候无意发现的,用了一段时间,觉得还可以,特此推荐一下。 lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码。特别是相对于 POJO...

吴海宏
2014/10/21
0
0
Java代码简化神器-Lombok

一、背景   前段时间在开源社区中发现了一个比较牛逼的简化Java代码的神器-Lombok,接着自己写了demo进行测试和练习,感觉真的很不错,特此分享给需要的小伙伴们~ 二、开发之前的准备   1...

hafiz.zhang
2016/05/21
0
0
Lombok学习笔记— 消除冗余java代码

lombok官网:http://projectlombok.org/ lombok开源中国连接:http://www.oschina.net/p/lombok lombok安装: 使用lombok之前是需要进行安装的,否则IDE无法解析lombok注释。安装lombok首先当...

Elven_Xu
2016/11/20
11
0
Lombok 安装、入门 - 消除冗长的 java 代码

前言: 逛开源社区的时候无意发现的,用了一段时间,觉得还可以,特此推荐一下。 lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码。特别是相对于 POJO...

AnyLiem
2015/07/10
288
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux命令备忘录: jobs 显示Linux中的任务列表及任务状态命令

jobs命令用于显示Linux中的任务列表及任务状态,包括后台运行的任务。该命令可以显示任务号及其对应的进程号。其中,任务号是以普通用户的角度进行的,而进程号则是从系统管理员的角度来看的...

开元中国2015
43分钟前
1
0
springboot Whitelabel Error Page(Not Found)解决方案

当出现上图图的错误时注意 报错信息 There was an unexpected error (type=Not Found, status=404). Not Found代表未访问到资源 解决方案:比较访问路径和代码的路径有没有写错 正确的访问路...

斩神魂
43分钟前
1
0
记一次hbase master停止服务的原因以及恢复

在Hdfs空间不足的情况下,拒绝写入,hbase会down掉。如果hdfs空间没有清理的情况下,重新启动hbase,会报splitlog失败,原因是wal日志重写过程中会写hdfs,写不进去导致的。重启不成功。 解决...

PageYi
47分钟前
1
0
如何从平面设计转行到UI设计?

时代的变迁,科技的进步,工具的发展,薪资的差距,促使许多人转行的原因,但平面与界面两者之间有着哪些的差异呢?如果,想要转行又该具备哪些条件呢? 平面、界面设计之间的差异性 平面设计...

mo311
50分钟前
4
0
线程池整理

一般在生产环境中,我们都不会直接new一个Thread,然后再去start(),因为这么做会不断频繁的创建线程,销毁线程,过大的线程会耗尽CPU和内存资源,大量的垃圾回收,也会给GC带来压力,延长GC停顿时间...

算法之名
51分钟前
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部