lombok 介绍及基本使用方法

Lombok是一个基于LGPL的开源J2EE综合开发环境的Eclipse插件,对编码,发布,测试,以及debug等各个软件开发的生命周期提供支持,支持JSP,EJB等。Lomboz是Eclipse的一个J2EE的插件,它将很多Java应用服务器、J2EE组件和Web应用开发集成到Eclipse中,可以帮助Java开发者使用Eclipse建立、测试、部署J2EE应用。

lombok 的官方网址:http://projectlombok.org/ 

lombok 安装
    使用 lombok 是需要安装的,如果不安装,IDE 则无法解析 lombok 注解。先在官网下载最新版本的 JAR 包,现在是 0.11.2 版本,我用的是 0.11.0
    第一次使用的时候我下载的是最新版本的,也就是我现在用的 0.11.0,到现在已经更新了两个版本,更新的好快啊 ... ...

1. 双击下载下来的 JAR 包安装lombok
    我选择这种方式安装的时候提示没有发现任何 IDE,所以我没安装成功,我是手动安装的。如果你想以这种方式安装,请参考官网的视频。

2.eclipse / myeclipse 手动安装 lombok
    1. 将 lombok.jar 复制到 myeclipse.ini / eclipse.ini 所在的文件夹目录下
    2. 打开 eclipse.ini / myeclipse.ini,在最后面插入以下两行并保存:
        -Xbootclasspath/a:lombok.jar
        -javaagent:lombok.jar
    3.重启 eclipse / myeclipse

常用的 lombok 注解

@EqualsAndHashCode:实现equals()方法和hashCode()方法 @ToString:实现toString()方法
@Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@Setter:注解在属性上;为属性提供 setting 方法
@Getter:注解在属性上;为属性提供 getting 方法
@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
@NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法
@Cleanup:关闭流 @Synchronized:对象同步 @SneakyThrows:抛出异常

@Data

不使用 lombok 的方案

public class Person {

 private String id;
 private String name;
 private String identity;
 private Logger log = Logger.getLogger(Person.class);
 public Person() {
   }
 public Person(String id, String name, String identity) {
      this.id   = id;
      this.name = name;
      this.identity = identity;
  }    
 public String getId() {
       return id;
   } 
 public String getName() {
           return name;
   }

 public String getIdentity() {
     return identity;
  }    
 public void setId(String id) {
      this.id = id;
  }

  public void setName(String name) {
    this.name = name;
  }

  public void setIdentity(String identity) {
      this.identity = identity;
  }
}

使用 lombok 的方案

 @Data
 @Log4j
 @NoArgsConstructor
 @AllArgsConstructor
 public class Person {
 private String id;
 private String name;
 private String identity;
}

上面的两个 Java 类,从作用上来看,它们的效果是一样的,相比较之下,很明显,使用 lombok 要简洁许多
 
   org.projectlombok
   lombok
 

@Builder

不使用 lombok 的方案

public class Example {
        private T foo;
        private final String bar;

        private Example(T foo, String bar) {
                this.foo = foo;
                this.bar = bar;
        }

        public static  ExampleBuilder builder() {
                return new ExampleBuilder();
        }

        public static class ExampleBuilder {
                private T foo;
                private String bar;

                private ExampleBuilder() {}

                public ExampleBuilder foo(T foo) {
                        this.foo = foo;
                        return this;
                }

                public ExampleBuilder bar(String bar) {
                        this.bar = bar;
                        return this;
                }

                @java.lang.Override 
                public String toString() {
                        return "ExampleBuilder(foo = " + foo + ", bar = " + bar + ")";
                }

                public Example build() {
                        return new Example(foo, bar);
                }
        }
 }

使用 lombok 的方案

@Builder
 public class Example {
        private int foo;
        private final String bar;
 }

构造一个实例,属性不需要单独set
Example.builder().foo(1).bar(“test”).build()

你可能感兴趣的:(JAVA,EE,Eclipse)