欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SpringBoot使用LomBok的示例代码

程序员文章站 2023-12-20 13:39:16
lombok是什么?它是一个能帮我们消除那些必须要写但是重复的代码,比如setter,getter,构造函数之类的方法。 首先先简单说一下idea安装lombok,有2种...

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

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

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

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

SpringBoot使用LomBok的示例代码

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

SpringBoot使用LomBok的示例代码

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

<?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的类,代码如下:

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的好处,代码如下:

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测试,代码如下:

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

源码下载 :

本地源码下载地址:springboot-lombok_jb51.rar

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

上一篇:

下一篇: