1.lombok系列1:初识lombok
转自:https://www.imooc.com/article/18156
初识lombok
什么是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的更多相关文章
- 2.lombok系列2:lombok注解详解
转自:https://www.imooc.com/article/18157 开篇 看到第一篇<初识lombok>你可能意犹未尽,本文我们按照场景来介绍一下常用的注解. 未特别说明,均标注 ...
- 3.lombok系列3:lombok的实验类特性
转自:https://blog.csdn.net/54powerman/article/details/72516755 lombok除了已经推荐使用的基本功能,还维护了一个创新型的注解,有些功能有违 ...
- WCF编程系列(一)初识WCF
WCF编程系列(一)初识WCF Windows Communication Foundation(WCF)是微软为构建面向服务的应用程序所提供的统一编程模型.WCF的基本概念: 地址:定义服务的 ...
- idea 2018 配置lombok插件及使用lombok设置实体类的getter和setter
内容简介 本文主要介绍Idea 2018中安装lombok插件,以及lombok的简单使用(生成实体类的getter和setter). lombok插件配置方法 Step 1: 打开Settings窗 ...
- lombok系列(一)
如果在类上面使用@Builder注解, @Builder public class A { } controller中使用: public String test(@RequestBody A a){ ...
- Gradle系列之初识Gradle
原文首发于微信公众号:躬行之(jzman-blog) 学习 Android 有一段时间了,开发中经常使用到 Gradle ,但是不知道 Gradle 构建项目的原理,计划花一点时间学习一下 Gradl ...
- .net core系列之初识asp.net core
.net core已经发布了2.0版本,相对于1.0的有了很大的完善,最近准备在项目中尝试使用asp.net core,所以就进行了一些简单的研究. 初识asp.net core分为以下几个部分: 1 ...
- SpringMVC 框架系列之初识与入门实例
微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1.SpringMVC 概述 (1). MVC:Model-View-Control Contr ...
- 【安卓网络请求开源框架Volley源码解析系列】初识Volley及其基本用法
在安卓中当涉及到网络请求时,我们通常使用的是HttpUrlConnection与HttpClient这两个类,网络请求一般是比较耗时,因此我们通常会在一个线程中来使用,但是在线程中使用这两个类时就要考 ...
随机推荐
- Java基础学习总结(20)——基础语法
一.标识符 二.关键字 三.JAVA基础数据类型 3.1. java常量 3.2. java变量 从本质上来讲,变量其实是内存里面的一小块区域,一个程序在运行的时候,实际上这个程序是位于内存里面,然后 ...
- 【转】C#中RSA加密解密和签名与验证的实现
[转]C#中RSA加密解密和签名与验证的实现 RSA加密算法是一种非对称加密算法.在公钥加密标准和电子商业中RSA被广泛使用.RSA是1977年由罗纳德•李维斯特(Ron Rivest).阿迪•萨莫尔 ...
- iOS xib View宽高不能改变
IOS - xib(Interface Builder,view) - can't change view size(view不能改变大小问题) 今天在试着swift语言写个demo,,当中遇到了这个 ...
- 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 ...
- 81.node.js前端html时页面格式错乱解决办法
var http = require("http"); var url = require("url"); var fs = require("fs& ...
- XDoclet学习
XDoclet可以通过你在java源代码中的一些特殊的注释信息,自动为你生成配置文件.源代码等等,例如web.ejb的部署描述文件.为你生成struts的struts-config.xml配置文件.j ...
- (转载)http协议的Request Payload 和 Form Data 的区别
我正在开发的项目前端和后端是完全独立的,通过配置 webpack 的 proxy 将前端请求跨域代理到后台服务.昨天发现,我前端执行 post 请求,后台 springmvc 的 @RequestMa ...
- ES6特性-对比两个值是否相等
因为JavaScript中有语言缺陷,所以出了个Object.is()
- 洛谷 P1013 进制位
P1013 进制位 题目描述 著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字. 例如: + L K V E L L K V E K K V E KL V V E ...
- [Python] Execute a Python Script
Python scripts can be executed by passing the script name to the python command or created as execut ...