在SpringBoot中使用lombok的注意事项

目录
  • Lombok需求
  • Lombok的使用
    • 开发工具无论是idea还是eclipse都必须要安装插件
    • 在项目中依赖Lombok如下
    • 简化javabean
    • 证明lombok在编译以后会自动生成
  • Lombok其他的注解
  • lombok插件使用和lombok不起作用的解决
    • @Data不起作用解决法方法

Lombok需求

在传统的开发过程中,一个javabean开发非常琐碎和麻烦,如下:

package com.example.entity;
public class User {
    // 用户编号
    private Integer id;
    // 用户昵称
    private String nickname;
    // 用户密码
    private String password;
    // 用户头像
    private String avatar;
    // 用户地址
    private String adddress;
    public User() {
    }
    public User(Integer id, String nickname, String password, String avatar, String adddress) {
        this.id = id;
        this.nickname = nickname;
        this.password = password;
        this.avatar = avatar;
        this.adddress = adddress;
    }
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", nickname='" + nickname + '\'' +
                ", password='" + password + '\'' +
                ", avatar='" + avatar + '\'' +
                ", adddress='" + adddress + '\'' +
                '}';
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getNickname() {
        return nickname;
    }
    public void setNickname(String nickname) {
        this.nickname = nickname;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getAvatar() {
        return avatar;
    }
    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }
    public String getAdddress() {
        return adddress;
    }
    public void setAdddress(String adddress) {
        this.adddress = adddress;
    }
}

你要生成

  • getter/setter
  • 无参构造函数
  • 有参构造函数
  • toString
  • hashcode

等等。

在开发中有一个利器:Lombok 可以解决和优化这个问题。

Lombok的使用

编写pojo时,经常需要编写构造函数和gettersetter方法,属性多的时候,非常浪费时间,使用lombok插件可以解决这个问题

开发工具无论是idea还是eclipse都必须要安装插件

以idea为例如下:

在项目中依赖Lombok如下

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.20</version>
</dependency>

简化javabean

package com.example.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Data // getter/setter
@ToString // toString
@AllArgsConstructor // 有参构造函数
@NoArgsConstructor // 无参构造函数
public class User {
    // 用户编号
    private Integer id;
    // 用户昵称
    private String nickname;
    // 用户密码
    private String password;
    // 用户头像
    private String avatar;
    // 用户地址
    private String adddress;
}

证明lombok在编译以后会自动生成

Lombok其他的注解

  • @Data:自动提供getter和setter、hashCode、equals、toString等方法
  • @Getter:自动提供getter方法
  • @Setter:自动提供setter方法
  • @ToString:生成toString方法
  • @NoArgsConstructor:自动生成无参数构造函数
  • @AllArgsConstructor:自动生成全参数构造函数
  • @Builder:可以实现属性连续赋值
  • @Accessors @Accessors批注用于配置lombok如何生成和查找getter和setter。标注到类上,chain属性设置为true时,类的所有属性的setter方法返回值将为this,用来支持setter方法的链式写法
  • @Slf4j and @Log4j:自动在bean中提供log变量,在需要打印日志的类中使用,项目中使用slf4j、log4j日志框架
  • @NonNull:这个注解可以用在成员方法或者构造方法的参数前面,会自动产生一个关于此参数的非空检查,如果参数为空,则抛出一个空指针异常。
  • @Cleanup:注解用于确保已分配的资源被释放(IO的连接关闭)。
  • @Synchronized:注解自动添加到同步机制,生成的代码并不是直接锁方法,而是锁代码块, 作用范围是方法上。ull :这个注解可以用在成员方法或者构造方法的参数前面,会自动产生一个关于此参数的非空检查,如果参数为空,则抛出一个空指针异常。
  • @Cleanup:注解用于确保已分配的资源被释放(IO的连接关闭)。
  • @Synchronized:注解自动添加到同步机制,生成的代码并不是直接锁方法,而是锁代码块, 作用范围是方法上。
  • @Value注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法。

lombok插件使用和lombok不起作用的解决

idea安装插件

引入依赖

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.20</version>
            <scope>provided</scope>
        </dependency>

实体类中使用@Data

@Data
public class Employee {
    private Integer id; // id
    private String lastName; // 名字
    private String email; // 邮箱
    private Integer gender; // 性别 1男 0女
    private Integer dId; // 部门id
    }

@Data不起作用解决法方法

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • SpringBoot 开发提速神器 Lombok+MybatisPlus+SwaggerUI

    导读 Lombok:可以让你的POJO代码特别简洁,不止简单在BO/VO/DTO/DO等大量使用,还有设计模式,对象对比等 MybatisPlus:增加版Mybatis,基础的数据库CRUD.分页等可以直接生成使用,避免了大量的重复低效代码,还有数据库自动Java类,sql文件等等,比传统的更贱简介易用 SwaggerUI:接口文档自动生成,对接前端和测试更加方便,基于业界的OpennApi规范,采用Swagger3.x版本. 技术栈 SpringBoot2.4+ MybatisPlus+Lom

  • SpringBoot工程下Lombok的应用教程详解

    背景分析 在实际的java项目中我们创建的所有pojo类几乎都要为属性添加set/get/toString等相关方法,所有的日志记录相关类可能都要创建日志等对象,这些样板代码既没有技术含量,又影响着代码的美观,同时重复的编码过程会在无形中加大我们的工作量. 此时Lombok应运而生. lombok简介 概述 Lombok是一个第三方的Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来告诉编译过程中的编译工具,在源代码编译成字节码的过程中,在字节码中添加一些量样板代

  • Lombok为啥这么牛逼?SpringBoot和IDEA官方都要支持它

    最近 IDEA 2020最后一个版本发布了 ,已经内置了Lombok插件,SpringBoot 2.1.x之后的版本也在Starter中内置了Lombok依赖.为什么他们都要支持Lombok呢?今天我来讲讲Lombok的使用,看看它有何神奇之处! Lombok简介 Lombok是一款Java代码功能增强库,在Github上已有9.8k+Star.它会自动集成到你的编辑器和构建工具中,从而使你的Java代码更加生动有趣.通过Lombok的注解,你可以不用再写getter.setter.equals

  • idea 在springboot中使用lombok插件的方法

    在idea中添加lombok插件 选择 file-->setting--->plugins  搜索lombok  并安装插件后重启idea 使用Lombok 在pom.xml中引入依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.10</version> <s

  • 基于Lombok集成springboot遇到的坑

    目录 Lombok集成springboot遇到的坑 问题 原因 springboot引入Lombok Lombok集成springboot遇到的坑 最近有同事在spring boot中用Lombok @Data注解时遇到了一个奇怪的问题,然后有幸一起研究了一下,把研究成果记录下来. 问题 先上代码: @Data public abstract class TestAbstract { private RedisTemplate redisTemplate; public TestAbstract

  • Springboot中使用lombok的@Data注解方式

    目录 Springboot 使用lombok的@Data注解 idea安装lombok插件 创建项目,编写实体类 编写测试类 测试结果 springBoot 注解@Data注入失败 一.Files--Seetings--Plugins 二.如果重启后仍注入失败 Springboot 使用lombok的@Data注解 idea安装lombok插件 点击setting,选择plugins,搜索lombok安装即可. 创建项目,编写实体类 安装好插件后需要重启idea,然后创建一个springboot

  • 在SpringBoot中使用lombok的注意事项

    目录 Lombok需求 Lombok的使用 开发工具无论是idea还是eclipse都必须要安装插件 在项目中依赖Lombok如下 简化javabean 证明lombok在编译以后会自动生成 Lombok其他的注解 lombok插件使用和lombok不起作用的解决 @Data不起作用解决法方法 Lombok需求 在传统的开发过程中,一个javabean开发非常琐碎和麻烦,如下: package com.example.entity; public class User { // 用户编号 pri

  • SpringBoot中打war包需要注意事项

    最近在做一个项目,遇到了项目打成 war 包的一个问题,项目创建时选择的时 jar 包方式,后因项目部署要求,需要打成 war 包部署,遇到很多坑,在此做一下记录 一.修改打包方式 原: <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> 改后: <version>0.0.1-SNAPSHOT</version> <packaging>war</p

  • 在springboot中对kafka进行读写的示例代码

    springboot对kafka的client很好的实现了集成,使用非常方便,本文也实现了一个在springboot中实现操作kafka的demo. 1.POM配置 只需要在dependencies中增加 spring-kafka的配置即可.完整效果如下: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifa

  • spring boot中多线程开发的注意事项总结

    前言 Springt通过任务执行器(TaskExecutor)来实现多线程和并发编程.使用ThreadPoolTaskExecutor可实现一个基于线程池的TaskExecutor.而实际开发中任务一般是非阻碍的,即异步的,所以我们要在配置类中通过@EnableAsync 开启对异步任务的支持,并通过实际执行Bean的方法中使用@Async注解来声明其是一个异步任务. 基于springboot的多线程程序开发过程中,由于本身也需要注入spring容器进行管理,才能发挥springboot的优势.

  • 详解SpringBoot中异步请求和异步调用(看完这一篇就够了)

    一.SpringBoot中异步请求的使用 1.异步请求与同步请求 特点: 可以先释放容器分配给请求的线程与相关资源,减轻系统负担,释放了容器所分配线程的请求,其响应将被延后,可以在耗时处理完成(例如长时间的运算)时再对客户端进行响应.一句话:增加了服务器对客户端请求的吞吐量(实际生产上我们用的比较少,如果并发请求量很大的情况下,我们会通过nginx把请求负载到集群服务的各个节点上来分摊请求压力,当然还可以通过消息队列来做请求的缓冲). 2.异步请求的实现 方式一:Servlet方式实现异步请求

  • 在SpringBoot 中从application.yml中获取自定义常量方式

    要注意的地方是 application.yml 中不能用驼峰式写法(systemParams)要改成system-params 方法一: 引入依赖: <!-- 支持 @ConfigurationProperties 注解 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</a

  • SpringBoot中使用Jsoup爬取网站数据的方法

    爬取数据 导入jar包 <properties> <java.version>1.8</java.version> <elasticsearch.version>7.6.1</elasticsearch.version> </properties> <dependencies> <dependency> <groupId>org.jsoup</groupId> <artifactI

  • springboot中通过lua脚本来获取序列号的方法

    序言: 事件:此web项目的功能及其简单,就是有客户端来访问redis序列号服务时发送jison报文,项目已经在测试环境成功运行2周了,具体的代码我就直接上了,此博客仅是自己的记录,同学们可做参考! 一.工程目录结构 二.配置文件 1.pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"

随机推荐