SpringBoot使用LomBok的示例代码

时间:2022-09-22 17:21:27

lombok是什么?它是一个能帮我们消除那些必须要写但是重复的代码,比如setter,getter,构造函数之类的方法。

首先先简单说一下idea安装lombok,有2种方法:

1.直接从http://plugins.jetbrains.com/下载,然后放到idea安装文件下面的plugins,然后重启idea

2.在idea的settings(windows)或者preferences(mac),下找到plugins菜单,点击browse repositories,如图

SpringBoot使用LomBok的示例代码

然后搜索lombok,点击右侧下载,下载完成重启即可,如图

SpringBoot使用LomBok的示例代码

新建项目,在pom文件中加入lombok依赖,完整pom如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?xml version="1.0" encoding="utf-8"?>
<project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
     xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelversion>4.0.0</modelversion>
 
  <groupid>com.dalaoyang</groupid>
  <artifactid>springboot_lombok</artifactid>
  <version>0.0.1-snapshot</version>
  <packaging>jar</packaging>
 
  <name>springboot_lombok</name>
  <description>springboot_lombok</description>
 
  <parent>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-parent</artifactid>
    <version>1.5.9.release</version>
    <relativepath/> <!-- lookup parent from repository -->
  </parent>
 
  <properties>
    <project.build.sourceencoding>utf-8</project.build.sourceencoding>
    <project.reporting.outputencoding>utf-8</project.reporting.outputencoding>
    <java.version>1.8</java.version>
  </properties>
 
  <dependencies>
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-web</artifactid>
    </dependency>
 
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-devtools</artifactid>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-test</artifactid>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupid>org.projectlombok</groupid>
      <artifactid>lombok</artifactid>
      <version>1.16.20</version>
    </dependency>
  </dependencies>
 
  <build>
    <plugins>
      <plugin>
        <groupid>org.springframework.boot</groupid>
        <artifactid>spring-boot-maven-plugin</artifactid>
      </plugin>
    </plugins>
  </build>
</project>

新建一个user类,这个是使用lombok的类,代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.dalaoyang.entity;
 
import lombok.allargsconstructor;
import lombok.data;
import lombok.noargsconstructor;
 
/**
 * @author dalaoyang
 * @description
 * @project springboot_learn
 * @package com.dalaoyang
 * @email yangyang@dalaoyang.cn
 * @date 2018/5/7
 */
@data
@allargsconstructor
@noargsconstructor
public class user {
 
  private integer id;
  private string name;
  private string password;
}

新建一个usernolombok类,这个和原来一样,目的为了对比使用lombok的好处,代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package com.dalaoyang.entity;
 
import java.util.objects;
 
/**
 * @author dalaoyang
 * @description
 * @project springboot_learn
 * @package com.dalaoyang.entity
 * @email yangyang@dalaoyang.cn
 * @date 2018/5/7
 */
public class usernolombok {
  private integer id;
  private string name;
  private string password;
 
  public integer getid() {
    return id;
  }
 
  public void setid(integer id) {
    this.id = id;
  }
 
  public string getname() {
    return name;
  }
 
  public void setname(string name) {
    this.name = name;
  }
 
  public string getpassword() {
    return password;
  }
 
  public void setpassword(string password) {
    this.password = password;
  }
 
  public usernolombok(integer id, string name, string password) {
    this.id = id;
    this.name = name;
    this.password = password;
  }
 
 
  public usernolombok() {
  }
 
  @override
  public boolean equals(object o) {
    if (this == o) return true;
    if (o == null || getclass() != o.getclass()) return false;
    usernolombok that = (usernolombok) o;
    return objects.equals(id, that.id) &&
        objects.equals(name, that.name) &&
        objects.equals(password, that.password);
  }
 
  @override
  public int hashcode() {
 
    return objects.hash(id, name, password);
  }
 
  @override
  public string tostring() {
    return "usernolombok{" +
        "id=" + id +
        ", name='" + name + '\'' +
        ", password='" + password + '\'' +
        '}';
  }
}

然后新建一个usercontroller测试,代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package com.dalaoyang.controller;
 
import com.dalaoyang.entity.user;
import org.springframework.web.bind.annotation.getmapping;
import org.springframework.web.bind.annotation.restcontroller;
 
/**
 * @author dalaoyang
 * @description
 * @project springboot_learn
 * @package com.dalaoyang.controller
 * @email yangyang@dalaoyang.cn
 * @date 2018/5/7
 */
@restcontroller
public class usercontroller {
 
  @getmapping("/testuser")
  public user getuser(){
    user user = new user();
    user.setid(1);
    user.setname("dalaoyang");
    user.setpassword("123");
    system.out.println(user.tostring());
    return user;
  }
}

访问http://localhost:8080/testuser如图

SpringBoot使用LomBok的示例代码

lombok注解简介:

@data 标签,生成getter/setter tostring()等方法
@nonnull : 让你不在担忧并且爱上nullpointerexception
@cleanup : 自动资源管理:不用再在finally中添加资源的close方法
@setter/@getter : 自动生成set和get方法
@tostring : 自动生成tostring方法
@equalsandhashcode : 从对象的字段中生成hashcode和equals的实现
@noargsconstructor/@requiredargsconstructor/@allargsconstructor
自动生成构造方法
@data : 自动生成set/get方法,tostring方法,equals方法,hashcode方法,不带参数的构造方法
@value : 用于注解final类
@builder : 产生复杂的构建器api类
@sneakythrows : 异常处理(谨慎使用)
@synchronized : 同步方法安全的转化
@getter(lazy=true) :
@log : 支持各种logger对象,使用时用对应的注解,如:@log4j

源码下载 :大老杨码云

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.jianshu.com/p/df3705c54188