SpringBoot 整合 Lombok

简介

Lombok其实和Spring Boot关系不太大,只是这个工具太好用了,这里也整理记录一下。 Lombok是一个Java库可以与Java IDE(ItelliJ IDEA、Eclipse)和构建工具(Gradle、Maven)集成,帮助开发人员消除臃肿的Java代码,尤其是对于Java POJO类,使用Lombok后将不再需要我们去编写getter、setter、equals、hashcode等方案,Lombok通过注解实现这一目标。

添加依赖

在SpringBoot中的pom.xml中添加Lombok的依赖从标

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

编写测试类

编写一个SayInfo的实体类,并在类上标注@Data注解,如下:

@Data
public class SayInfo {
    private String name;
    private String city;
}

编写测试方法

public class TestOne {
    @Test
    void sayTest(){
        SayInfo sayInfo = new SayInfo();
        sayInfo.setCity("shenzhen");
        sayInfo.setName("xiaoyuan");
        String city = sayInfo.getCity();
        String name = sayInfo.getName();
        System.out.println(sayInfo);
        System.out.println(city);
        System.out.println(name);
    }
}

从上面的代码可以看出,我们在SayInfo这个类中,我们并没有定义setCity()getCity()等get/set类的方法,但是我们却可以进行调用,这个就是Lombok的@Data注解的功能,@Data注解为我们节省了大量的GET/SET方法代码。

Lombok注解详解

Lombok有几个使用频率较高的注解,下面介绍一下它们的相关用法。

@Setter: 自动生成set方法

@Getter:自动生成get方法

@ToString: 自动生成toString 方法

@EqualsAndHashCode: 自动从对象的字段中生成hashCode和equals

@NoArgsConstructor:自动生成无参数构造方法

@AllArgsConstructor:自动生成全参数构造方法

@Data:自动生成set/get方法,toString方法,equals方法,hashCode方法,不带参数的构造方法

@Value:用来注解final类

@Builder:生成构建器模式代码

@Data
@Builder
public class SayInfo {
    private String name;
    private String city;
}

public class TestOne {
    @Test
    void sayTest(){
        SayInfo sayInfo = SayInfo.builder().city("shenzhen").build();
        sayInfo.setName("xiaoyuan");
    }
}

@Synchronized:同步方法安全的转化

@Log4j2:支持Log4j2日志对象

在IDEA中使用lombok

如果想要让lombok生效我们还需要对针对IDEA工具进行插件安装支持。

Preferences > Plugins > Marketplace > 输入lombok,插件就会被自动检索出来,如下图所示:

SpringBoot 整合 Lombok

安装完,然后重启IDEA即可。

原创文章,作者:jiafegn,如若转载,请注明出处:https://www.techlearn.cn/archives/2162

Previous 2024年8月21日 上午10:44
Next 2024年8月28日 上午11:39

相关推荐

  • SpringBoot 整合Memcached

    简介 Memcached 是一个高性能的分布式内存对象的key-value缓存系统,用于动态Web应用以减轻数据库负载,现在也有很多人将它作为内存式数据库在使用,memcached…

    springboot 2023年4月24日
    241
  • SpringBoot 依赖注入

    前言 SpringBoot 中通过注解实现依赖注入主要有以下几种: @Autowired注解 @Qualifier注解 @Resource注解 @Primary注解 @Autowi…

    springboot 2024年1月15日
    631
  • SpringBoot 整合Redis

    添加依赖 在pom.xml文件添加redis的依赖,如下: 配置 在application.yml文件中添加Redis相关的配置项,如下所示: 案例 1、字符串元素 2、List元…

    springboot 2023年3月26日
    121
  • SpringBoot 整合Druid数据源

    简介 Druid是阿里巴巴开源的数据库连接池,号称是Java语言中最好的数据库连接池,能够提供强大的监控和扩展功能。 优点 引入依赖 这里使用的是SpringBoot整合版的Dru…

    2023年3月26日
    168
  • SpringBoot 定时器

    spring提供了@Scheduled和@EnableScheduling两个注解用来快速开发定时器,使用很简单 用法: 1、Springboot的启动类中加上@EnableSch…

    springboot 2023年4月23日
    135
  • SpringBoot CRUD基础开发 入门

    需求简介 环境准备 1、新建项目 新建一个crud的项目,如下: 2、新建数据库脚本 新建curd数据库 初始化数据库 引入依赖 1、引入web依赖 2、引入Lombok依赖 3、…

    2023年3月26日
    178
  • SpringBoot 全局异常统一处理

    前言 在实际的项目开发过程中,会有大量的异常发生,而我们并不能将异常信息反馈到用户,所以在返回结果的时候需要对异常进行处理,可是如果在每个Controller返回结果都需要进行异常…

    springboot 2023年4月29日
    125
  • SpringBoot 整合Mybatis-Plus

    简介 MyBatis-Plus是一个MyBatis的增强工具,在Mybatis的基础上只做增强不做改变,为简化开发,提高效率而生。 添加依赖 注意:添加Mybatis-Plus即可…

    springboot 2023年3月26日
    131
  • SpringBoot 缓存 – jetcache

    简介 JetCache是一个基于Java的缓存系统封装,提供统一的API和强大的注解来简化缓存的使用。原生支持TTL、两级缓存、分布式自动刷新,还提供了Cache接口用于手工缓存操…

    springboot 2023年4月23日
    336
  • Springboot 注解 @Resource

    作用 和@Autowired注解类似,也是用来注入依赖对象的,spring容器会对bean中所有的字段、方法进行遍历,标注有@Resouce注解的,都会进行注入。@Autowire…

    springboot 2022年9月14日
    269