封面

lombok简化java代码注解的使用

今天在stackoverflow上回答问题的时候发现了几个不得了的注解,是我从来没有见过的。然后呢,为了回答别人的问题,我就去查资料了。。。觉得挺有用的,记录一下。。

一、缘由

stackoverflow上看到了这个问题。 spring boot RestController not work with lombok,然后就有了这篇博客。。

二、lombok是什么鬼

1. maven引用

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.10</version>
</dependency>

2. 一些api

ombok 注解:
lombok 提供的注解不多,可以参考官方视频的讲解和官方文档。
Lombok 注解在线帮助文档:http://projectlombok.org/features/index.html .
下面介绍几个我常用的 lombok 注解:
@Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@Setter:注解在属性上;为属性提供 setting 方法
@Getter:注解在属性上;为属性提供 getting 方法
@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
@NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法

下面是简单示例


@Data // 生成 getter/setter/equals/canEqual/hashCode/toString
@NoArgsConstructor // 为类提供一个无参的构造方法
@AllArgsConstructor // 为类提供一个全参的构造方法
public class Person {

private String id;
private String name;
private String identity;
private Logger log = Logger.getLogger(Person.class);
}

不使用 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;
}
}

二、实践结果

我发现stackoverflow的那个伙计代码写的并没有问题,我把他的代码粘到我本地运行没有一点卡壳。倒不如说他教会了我lombok,在此感谢一下。。嘿嘿

文章目录
  1. 1. 一、缘由
  2. 2. 二、lombok是什么鬼
    1. 2.1. 1. maven引用
    2. 2.2. 2. 一些api
  3. 3. 二、实践结果


twitter分享


如果想及时收到回复,可在 订阅中心Participating中勾选Email

Fork me on GitHub