无意中看到这样一个小框架,看完之后,真是不得不顶,很简单,却也很实用的一个东西。
当然这个框架不是mvc 也不是ioc aop orm等等东西,它类似一个代码生成器。
不再多废话了,下面是正文:
--------------------------------------------------------------------------------------------
我偶然发现的一个很小很强悍的项目:Lombok 它会在编译期修改你的字节码文件,千言万语比不上代码来展示,下面就来看看吧。
在一个pojo中,下面的代码是非常常见的:
public class User {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
所有的这些get set,会让你的pojo变得很冗繁,当然,很多同学说get set方法都是eclipse生成的,又不用我自己写,但是自己看起来不觉得很累么,用了Lombok,我们可以这样:
import lombok.Getter;
import lombok.Setter;
public class User {
@Getter @Setter
private int id;
@Getter @Setter
private String name;
}
我想,看了这些代码,你可能猜到Lombok做了些什么,没错,看我的eclipse截图,你就会看到Lombok到底做了些什么事情:
甚至,我们可以这样写:
import lombok.Data;
public @Data class User {
private int id;
private String name;
}
我们再来看看Lombok生成了什么样的东西:
没错,在编译期,Lombok根据你写的annotation,给你的所有属性加上了getter setter,甚至是hashCode,equals和toString。
好,我们已经领略了Lombok的威力,那么,接下来希望给您呈现Lombok的全貌:
Lombok介绍
Lombok的特色是根据annotation创建一些代码,以减少重复代码的数量,它提供了以下几个annotation:
@Getter和@Setter:为属性创建getter和setter
@EqualsAndHashCode:实现equals()方法和hashCode()方法
@ToString:实现toString()方法
@Data:上述3个annotation的和,会创建getter setter equals hashCode和toString,正如你上面看到的那样
@Cleanup:关闭流
@Synchronized:对象同步
@SneakyThrows:抛出异常
下面,看一些官网上的实例吧:
@Getter @Setter
Lombok中的写法
原来的写法:
@ToString
Lombok的写法:
@ToString(exclude="id")
public class User {
@Getter @Setter private String name;
@Getter @Setter private int id;
}
原来的写法:
public class User {
private String name;
private int id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Override
public String toString() {
return "User [name=" + name + "]";
}
}
@EqualsAndHashCode
Lombok的写法:
@EqualsAndHashCode(exclude={"id"})
public class UserEqualsAndHashCode {
@Getter @Setter private int id;
@Getter @Setter private String name;
}
其他的我不想再贴下去,我建了个工程,里面有一些基本的Lombok使用,大家可以细看。
另外,我下载下来官方的视频,放在这里,视频解释的很清晰,很明了,Lombok,真的是很简单的一个东西。
还有,DZone上的这篇介绍文章,写的也是非常清晰易懂,大家可以通过它获得更深刻的理解:
http://java.dzone.com/articles/lombok-reduces-your
- 大小: 12.4 KB
- 大小: 7.9 KB
- 大小: 28.5 KB
- 大小: 35.5 KB
分享到:
相关推荐
在项目中使用lombok可以减少重复代码,可以完成getting/setting的编写
在项目中使用Lombok可以减少很多重复代码的书写。比如说getter/setter/toString等方法的编写。
在项目中使用Lombok可以减少很多重复代码的书写。比如说getter/setter/toString等方法的编写。
在项目中使用Lombok可以减少很多重复代码的书写。比如说getter/setter/toString等方法的编写。
lombok是开源的代码生成库,是一款非常实用的小工具,我们在编辑实体类时可以通过lombok注解减少getter、setter等方法的编写,在更改实体类时只需要修改属性即可,减少了很多重复代码的编写工作。
lombok是开源的代码生成库,是一款非常实用的小工具,我们在编辑实体类时可以通过lombok注解减少getter、setter等方法的编写,在更改实体类时只需要修改属性即可,减少了很多重复代码的编写工作。
主要介绍了Java编码辅助工具Lombok用法详解,可以使用Lombok来避免这种重复的操作,减少非核心代码的臃肿,提高编码效率,需要的朋友可以参考下
使用这个插件可以极大地提高MyBatis的编码效率,减少重复工作,使开发者能够更专注于业务逻辑的实现。同时,该插件也提供了丰富的语法提示和错误检查功能,有助于减少编码错误,提高代码质量。 请注意,为了使用这...
controller层的token检测每个接口几乎都有,可以单独抽出来用拦截器和自定义注解统一处理,减少重复代码。 docker构建可以写成docker-compose配置文件,直接构建整个项目环境。 实体类PO与VO分离 单元测试未完成,...
用于快速构建中小型API,RESTful API项目,该种子项目已经有过多个真实项目的实践,稳定,简单,快速,使我们成为现实那些重复劳动,专注于业务代码的编写,减少加班。 特征&提供 最佳实践的项目结构,配置文件,...
MyBatis的种子项目,用于快速构建中小型API、RESTful API项目,该种子项目已经有过多个真实项目的实践,稳定、简单、快速,使我们摆脱那些重复劳动,专注于业务代码的编写,减少加班。下面是一个简单的使用演示,看...
简单的登录/注销简单文件上传简单存储库,实现,接口,实体,控制器,服务胸腺及其片段静态页面渲染模型-视图-控制器架构带有JSON渲染的宁静端点使用Mockito进行单元测试使用JPA控制MySQL数据库使用Lombok减少代码您...
使用Lombok减少代码 您可以研究该项目中的代码,并将其用作下一个项目的基础。 该项目已部署在 大车 您将需要一个Cart模型, CartRepository , CartController , CartServiceImpl和CartServiceInterface 。 ...
增加lombok,减少重复代码 + 热部署,提高效率 + 遇到问题先看报错提示!!! ## 功能点 1、用户管理(教师/学生) - [x] 登录 - [x] 注册 - [x] 个人信息绑定/修改 - [x] 密码更改 2、班级管理 - [x] 教师创建...
| |项目说明X-SpringBoot是一个轻量级的Java快速开发平台,基于各大开源项目组合而来,用于快速构建中小型API,RESTful API项目,该项目已经有过多个真实项目的实践,稳定,简单,快速,使我们可以那些重复劳动。...
大大减少了手动启动繁琐样板代码的需要。 构建系统支持上述所有内容。 IntelliJ 配置 这是 IntelliJ 所必需的,否则 Lombok 注释生成的代码将不可见(并且该项目将充斥着红色波浪线错误)。 建造 要构