转自: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. Java基础学习总结(20)——基础语法

    一.标识符 二.关键字 三.JAVA基础数据类型 3.1. java常量 3.2. java变量 从本质上来讲,变量其实是内存里面的一小块区域,一个程序在运行的时候,实际上这个程序是位于内存里面,然后 ...

  2. 【转】C#中RSA加密解密和签名与验证的实现

    [转]C#中RSA加密解密和签名与验证的实现 RSA加密算法是一种非对称加密算法.在公钥加密标准和电子商业中RSA被广泛使用.RSA是1977年由罗纳德•李维斯特(Ron Rivest).阿迪•萨莫尔 ...

  3. iOS xib View宽高不能改变

    IOS - xib(Interface Builder,view) - can't change view size(view不能改变大小问题) 今天在试着swift语言写个demo,,当中遇到了这个 ...

  4. CO-PRIME(初探 莫比乌斯)NYOJ1066(经典)gcd(a,b)=1

    CO-PRIME 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描写叙述 This problem is so easy! Can you solve it? You are ...

  5. 81.node.js前端html时页面格式错乱解决办法

    var http = require("http"); var url = require("url"); var fs = require("fs& ...

  6. XDoclet学习

    XDoclet可以通过你在java源代码中的一些特殊的注释信息,自动为你生成配置文件.源代码等等,例如web.ejb的部署描述文件.为你生成struts的struts-config.xml配置文件.j ...

  7. (转载)http协议的Request Payload 和 Form Data 的区别

    我正在开发的项目前端和后端是完全独立的,通过配置 webpack 的 proxy 将前端请求跨域代理到后台服务.昨天发现,我前端执行 post 请求,后台 springmvc 的 @RequestMa ...

  8. ES6特性-对比两个值是否相等

    因为JavaScript中有语言缺陷,所以出了个Object.is()

  9. 洛谷 P1013 进制位

    P1013 进制位 题目描述 著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字. 例如: + L K V E L L K V E K K V E KL V V E ...

  10. [Python] Execute a Python Script

    Python scripts can be executed by passing the script name to the python command or created as execut ...