lombok介绍及使用
Lombok的maven依赖:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.14.8</version> </dependency>
Lombok介绍原文:http://www.iteye.com/topic/1113871
关于Lombok这个东西,论坛里已经有人介绍过,我也是通过别人帖子了解到这个小工具:
http://www.iteye.com/topic/798305
不过作者以免写Getter/Setter为题来介绍Lombok的优势,看了后面的评论之后,觉得这个工具意义不大.
后来在博客在线看到一篇文章,期中提到了Lombok工具.这个工具已经被国外创业者所使用,随之对其产生了很浓厚的兴趣.
<Java开源建站工具>http://www.jobbole.com/entry.php/1233
关于如何介绍Lombok这个工具,自己想了半天,觉得实在比不过作者在首页提供的视频介绍:
ok~ 写了这么多Lombok到底是什么东西,他具体能带来什么便利呢?
Lombok主要是提供一套注解,根据注解在编译时生成相关代码,目前提供如**解:
@Getter
/ @Setter
永远不用再写 public int getFoo() {return foo;}
.@Getter(lazy=true)
Laziness is a virtue!@ToString
Lombok会根据field自动生成
toString
方法,这个对调试来说很方便! 这个注解生成的toString格式:
- LombokUser(id=001, name=wity_lv, email=wity_lv@sample.com)
@EqualsAndHashCode
生成 hashCode
and equals
方法.@NoArgsConstructor
, @RequiredArgsConstructor
and @AllArgsConstructor
Constructors made to order: Generates constructors that take no arguments, one argument per final / non-null field, or one argument for every field.@Data
All together now: A shortcut for @ToString
, @EqualsAndHashCode
, @Getter
on all fields, and @Setter
on all non-final fields, and @RequiredArgsConstructor
!@Cleanup
Automatic resource management: Call your close()
methods safely with no hassle.@Synchronized
synchronized
done right: Don't expose your locks.@SneakyThrows
To boldly throw checked exceptions where no one has thrown them before!@Log
支持多种Log工具, 我平时用@Log4j注解val
Finally! Hassle-free final local variables.@Delegate
Don't lose your composition.
如何使用?
1. 从项目首页下载lombok.jar
2. 双击lombok.jar, 将其安装到eclipse中(该项目需要jdk1.6+的环境)
3. 将Lombok.jar添加到classpath中
4. 编码看看:
项目结构:
- package lv.sample.lombok;
- import lombok.AllArgsConstructor;
- import lombok.Data;
- import lombok.NoArgsConstructor;
- import lombok.extern.log4j.Log4j;
- @Data
- @NoArgsConstructor
- @AllArgsConstructor
- @Log4j
- public class LombokUser {
- private String id = null;
- private String name = null;
- private String email = null;
- public static void main(String[] args) {
- log.info("test the lombok bean");
- LombokUser u = new LombokUser("001", "wity_lv", "[email protected]");
- System.out.println(u.toString());
- LombokUser u2 = new LombokUser("001", "wity_lv", "[email protected]");
- System.out.println(u.equals(u2));
- }
- }
console out 写道
2011-08-24 11:57:36 LombokUser(id=001, name=wity_lv, [email protected])
2011-08-24 11:57:36 true
What is happenning???
使用javap看看编译后的代码:
在eclipse outline中显示的结构
lombok安装过程如下(原文:http://wsj356428476.iteye.com/blog/1655032):
1、下载Lombok.jar http://projectlombok.googlecode.com/files/lombok.jar
2、运行Lombok.jar: java -jar D:\001_software\work\Java\libs\lombok.jar
数秒后将弹出一框,以确认eclipse的安装路径
3、确认完eclipse的安装路径后,点击install/update按钮,即可安装完成
4、安装完成之后,请确认eclipse安装路径下是否多了一个lombok.jar包,并且其
配置文件eclipse.ini中是否 添加了如下内容:
-javaagent:lombok.jar
-Xbootclasspath/a:lombok.jar
如果上面的答案均为true,那么恭喜你已经安装成功,否则将缺少的部分添加到相应的位置即可
5、重启eclipse或myeclipse
6、创建一个java工程,建立如下类:
- 1.public @Data class DataObject {
- 2. private String id;
- 3. private String name;
- 4. private String userId;
- 5. private String password;
- 6.}
创建一个DataObject对象后,可以通过实体访问相应属性的get和set方法。