转自:https://www.imooc.com/article/18156

初识lombok

官网: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 + "]";
}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66

然后写一个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);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

我们用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;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

没错,就是这么干净。

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

如何安装插件

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

下载插件

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

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

maven依赖配置:

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.16</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

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

安装lombok

直接执行lombok.jar,如:

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

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

使用lombok

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

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

1.lombok系列1:初识lombok的更多相关文章

  1. 2.lombok系列2:lombok注解详解

    转自:https://www.imooc.com/article/18157 开篇 看到第一篇<初识lombok>你可能意犹未尽,本文我们按照场景来介绍一下常用的注解. 未特别说明,均标注 ...

  2. 3.lombok系列3:lombok的实验类特性

    转自:https://blog.csdn.net/54powerman/article/details/72516755 lombok除了已经推荐使用的基本功能,还维护了一个创新型的注解,有些功能有违 ...

  3. WCF编程系列(一)初识WCF

    WCF编程系列(一)初识WCF   Windows Communication Foundation(WCF)是微软为构建面向服务的应用程序所提供的统一编程模型.WCF的基本概念:  地址:定义服务的 ...

  4. idea 2018 配置lombok插件及使用lombok设置实体类的getter和setter

    内容简介 本文主要介绍Idea 2018中安装lombok插件,以及lombok的简单使用(生成实体类的getter和setter). lombok插件配置方法 Step 1: 打开Settings窗 ...

  5. lombok系列(一)

    如果在类上面使用@Builder注解, @Builder public class A { } controller中使用: public String test(@RequestBody A a){ ...

  6. Gradle系列之初识Gradle

    原文首发于微信公众号:躬行之(jzman-blog) 学习 Android 有一段时间了,开发中经常使用到 Gradle ,但是不知道 Gradle 构建项目的原理,计划花一点时间学习一下 Gradl ...

  7. .net core系列之初识asp.net core

    .net core已经发布了2.0版本,相对于1.0的有了很大的完善,最近准备在项目中尝试使用asp.net core,所以就进行了一些简单的研究. 初识asp.net core分为以下几个部分: 1 ...

  8. SpringMVC 框架系列之初识与入门实例

    微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1.SpringMVC 概述 (1). MVC:Model-View-Control Contr ...

  9. 【安卓网络请求开源框架Volley源码解析系列】初识Volley及其基本用法

    在安卓中当涉及到网络请求时,我们通常使用的是HttpUrlConnection与HttpClient这两个类,网络请求一般是比较耗时,因此我们通常会在一个线程中来使用,但是在线程中使用这两个类时就要考 ...

随机推荐

  1. 137 - ZOJ Monthly, November 2014 - J Poker Face

    Poker Face Time Limit: 2 Seconds      Memory Limit: 65536 KB As is known to all, coders are lack of ...

  2. 洛谷 P1769 淘汰赛制_NOI导刊2010提高(01)

    P1769 淘汰赛制_NOI导刊2010提高(01) 题目描述 淘汰赛制是一种极其残酷的比赛制度.2n名选手分别标号1,2,3,…,2^n-1,2^n,他们将要参加n轮的激烈角逐.每一轮中,将所有参加 ...

  3. HDFS文件系统上传时序图 PB级文件存储时序图

    自己设计的时序图. 来自为知笔记(Wiz)

  4. Hadoop2 伪分布式部署

    一.简单介绍 二.安装部署 三.执行hadoop样例并測试部署环境 四.注意的地方 一.简单介绍 Hadoop是一个由Apache基金会所开发的分布式系统基础架构,Hadoop的框架最核心的设计就是: ...

  5. sublime配置python

    Sublime Text 2作为一款轻量级的编辑器,特点鲜明.方便使用,愈发受到普罗大众的喜爱.我个人近期也開始用了起来.同一时候,我近段时间还在学习Python的相关东西.所以開始用ST2来写Pyt ...

  6. Java 实现状态(State)模式

    /** * @author stone */ public class WindowState { private String stateValue; public WindowState(Stri ...

  7. Light OJ 1341 Aladdin and the Flying Carpet

    题意:求大于b的a的因数对有几组.例10  2结果为{2,5},12 2结果为{2,6}{3,4}-----不反复 解一:分解质因数+DFS #include <iostream> #in ...

  8. 【LeetCode】3Sum Closest 解题报告

    [题目] Given an array S of n integers, find three integers in S such that the sum is closest to a give ...

  9. 【POJ3377】Ferry Lanes 最短路

    我仅仅是贴一下手写堆优化的dij模板.尽管.它.TLE了--**** #include <cstdio> #include <cstring> #include <ios ...

  10. BZOJ1306: [CQOI2009]match循环赛

    [传送门:BZOJ1306] 简要题意: 有n个队伍,每个队伍都要和其他队伍比一场,赢了的队得3分,输了的队不得分,打平两队各得一分,给出每个队伍的得分,求出对战方案数 题解: DFS暴搜!!一眼就觉 ...