Lombok — Java代码自动生成 开发利器
2014-06-09 16:52
543 查看
http://www.jiucool.com/lombok-java-eclipse/
最近回家闲暇之余,发现了老外一款不错的工具,决定引入项目当中,这款工具就是Lombok.
Lombok是一款小巧的代码生成工具。官方网址:http://projectlombok.org/
LomBok主要特性有:自动生成默认的getter/setter方法、自动化的资源管理(通过@Cleanup注解)及注解驱动的异常处理等。目前在国外广泛应用。
LomBok它和jquery一样,目标是让程序员写更少的代码,以及改进一些原始语法中不尽人意的地方。Lombok能做到这一点。既不是用annotations process,也不是用反射。而是直接黑到了编译过程中。所以对运行效率没有任何影响,我们可以通过反编译class文件进行验证。
本人认为主要为以下三点:
1. 提高开发效率
2. 使代码直观、简洁、明了、减少了大量冗余代码(一般可以节省60%-70%以上的代码)
3. 极大减少了后期维护成本
目前我们主要采用Eclipse开发,所以以Eclipse为例演示:
java -jar lombok.jar
进行Eclipse插件的安装
Lombok的特色是根据annotation创建一些代码,以减少重复代码的数量,它提供了以下几个annotation:
@Getter和@Setter:为属性创建getter和setter
@EqualsAndHashCode:实现equals()方法和hashCode()方法
@ToString:实现toString()方法
@Data:上述3个annotation的和,会创建getter setter equals hashCode和toString
@Cleanup:关闭流
@Synchronized:对象同步
@SneakyThrows:抛出异常
@Log4j: log4j日志声明
下面,看一些实例吧:
@Getter @Setter
原来的写法:
Lombok中的写法
在生成 getter/setter 方法时,Lombok 遵从传统的标准。所有这些方法名都以 get 或 set 开头并且属性名都是大写的。当然,如果属性是一个 Boolean,情况例外。在这种情况下,getter 以 is 开始,而非 get。这是 Java bean 的一种标准实践;
hashcode 当JavaBean 输出数字;
toString 输出Class 和每个属性的打印列表;
修饰Getter方法的访问权限
@Getter(AccessLevel.PROTECTED) 修饰getter方法的访问权限
@Setter(AccessLevel.PROTECTED) 修饰setter方法的访问权限
@Getter(AccessLevel.PROTECTED) private int size;
@ToString
排除某一个特定字段重写toString方法:
@ToString(exclude="color")
public @Data class Lure {
private String name;
private int size;
private String color;
private String style;
}
@EqualsAndHashCode
等等……使用起来非常方便.
最近回家闲暇之余,发现了老外一款不错的工具,决定引入项目当中,这款工具就是Lombok.
一、Lombok是什么
Lombok是一款小巧的代码生成工具。官方网址:http://projectlombok.org/LomBok主要特性有:自动生成默认的getter/setter方法、自动化的资源管理(通过@Cleanup注解)及注解驱动的异常处理等。目前在国外广泛应用。
LomBok它和jquery一样,目标是让程序员写更少的代码,以及改进一些原始语法中不尽人意的地方。Lombok能做到这一点。既不是用annotations process,也不是用反射。而是直接黑到了编译过程中。所以对运行效率没有任何影响,我们可以通过反编译class文件进行验证。
二、为何项目中要引入Lombok
本人认为主要为以下三点:1. 提高开发效率
2. 使代码直观、简洁、明了、减少了大量冗余代码(一般可以节省60%-70%以上的代码)
3. 极大减少了后期维护成本
三、Lombok如何使用
目前我们主要采用Eclipse开发,所以以Eclipse为例演示:
1. Lombok在Eclipse上的安装
java -jar lombok.jar进行Eclipse插件的安装
2. Lombok的使用
Lombok的特色是根据annotation创建一些代码,以减少重复代码的数量,它提供了以下几个annotation:@Getter和@Setter:为属性创建getter和setter
@EqualsAndHashCode:实现equals()方法和hashCode()方法
@ToString:实现toString()方法
@Data:上述3个annotation的和,会创建getter setter equals hashCode和toString
@Cleanup:关闭流
@Synchronized:对象同步
@SneakyThrows:抛出异常
@Log4j: log4j日志声明
下面,看一些实例吧:
@Getter @Setter
原来的写法:
Lombok中的写法
在生成 getter/setter 方法时,Lombok 遵从传统的标准。所有这些方法名都以 get 或 set 开头并且属性名都是大写的。当然,如果属性是一个 Boolean,情况例外。在这种情况下,getter 以 is 开始,而非 get。这是 Java bean 的一种标准实践;
hashcode 当JavaBean 输出数字;
toString 输出Class 和每个属性的打印列表;
修饰Getter方法的访问权限
@Getter(AccessLevel.PROTECTED) 修饰getter方法的访问权限
@Setter(AccessLevel.PROTECTED) 修饰setter方法的访问权限
@Getter(AccessLevel.PROTECTED) private int size;
@ToString
排除某一个特定字段重写toString方法:
@ToString(exclude="color")
public @Data class Lure {
private String name;
private int size;
private String color;
private String style;
}
@EqualsAndHashCode
等等……使用起来非常方便.
相关文章推荐
- Lombok — Java代码自动生成 开发利器 Eclipse for Mac
- Lombok — Java代码自动生成 开发利器
- Lombok — Java代码自动生成 开发利器
- Java Web开发中可否自动生成结构一致的代码?
- Nhibernate开发代码工具,自动生成实体类、NHibernate的HBM映射文件和数据访问层的代码
- 没头没尾--项目开发笔记:异常处理与日志记录代码自动生成(工具能生成多少代码!?续一)
- WebMisDeveloper4.5.0 基于Ext.net,Extjs,MVC/简单三层的自动生成开发利器
- CXF 2.6.1 中WSDL2Java自动生成代码super出错
- eclipse 开发android 项目的时候系统自动生成的R.Java文件在重新生成时候丢失问题
- 轻量级的代码生成方案选择-Java基础-Java-编程开发
- [c#]一步一步开发自己的自动代码生成工具之一:获取sql2005的数据库表结构
- 验证码自动生成代码 java
- 用eclipse开发android,xml-layout文件不自动提示,Java代码可以自动提示
- java 代码自动生成getAndset
- 代码生成“利器”刺杀了“快速”开发平台
- [C#]一步一步开发自己的自动代码生成工具之五:DAL层模板
- android 应用开发不能自动生成R.java的原因
- java代码框架生成工具 开发记录2005-03-02
- [C#]一步一步开发自己的自动代码生成工具之三:代码生成引擎
- 简化 Ajax 和 Java 开发,第 1 部分: 用 JSP 标记文件动态生成 JavaScript 代码