Spring Boot下的lombok安装以及使用简介

来源:互联网 发布:安卓清理软件 编辑:程序博客网 时间:2024/06/06 23:20
     引言:spring Boot是非常高效的开发框架,lombok是一套代码模板解决方案,将极大提升开发的效率,这里介绍给大家使用。


    1. Lombok


    Lombok想要解决了的是在我们实体Bean中大量的Getter/Setter方法,以及toString, hashCode等可能不会用到,但是某些时候仍然需要复写,以期方便使用的方法;在使用Lombok之后,将由其来自动帮你实现代码生成,注意,其是在运行过程中,帮你自动生成的。就是说,将极大减少你的代码总量。


    Lombok的官方地址: https://projectlombok.org/


    2. LomBok的安装


    在SpringBoot1.4.1项目的pom.xml中新增如下信息:


    [html] view plain copy


    <dependency>


    <groupId>org.projectlombok</groupId>


    <artifactId>lombok</artifactId>


    </dependency>


    注意这里无需指定版本,因为Spring Boot中已经默认引入了这个类库,且指定了其scope。 这个即将lombok引入了项目,可以引用其类库标注。


    针对不同的IDE,lombok提供了不同的解决方案,笔者使用的是STS,故这介绍一下如何使用lombok插件在STS中:


    >> 1.  下载最新的lombok,最新版本。1.16.10  https://projectlombok.org/download.html


    >> 2.  切到lombok下载的目录,运行命令: Java -jar lombok.jar


    选中目录之后,就会看到如下窗口:


    大家可以看到,这里的会使用javaagent的方式写入STS的启动过程中。在确定之后,我们切到sts的安装目录,验证一下STS.ini文件:


    大家也可以发现,在STS的目录下,也有lombok.jar文件的存在,整个安装过程即可完成。


    3.   Lombok的使用


    主要是基于标注来进行信息的封装和使用:


    @NonNull:  标识对象是否为空,为空则抛出异常


    @Getter:   自动生成Getter方法


    @Setter:  自动生成Setter


    @ToString:  覆盖tostring方法


    @EqualsAndHashCode: 覆盖equal和hashCode方法


    @Data:  @Getter/@Setter, @ToString, @EqualAndHashCode等组合


    @Slf4j:  默认使用slf4j的日志对象


    4. 使用示例:


    示例Getter/Setter方法以及日志使用:


    [html] view plain copy


    import lombok.Data;


    import lombok.extern.slf4j.Slf4j;


    @Slf4j


    @Data


    public class TestBean {


    private String name;


    private int age;


    }


    测试用例:


    [html] view plain copy


    import org.junit.Test;


    import org.junit.runner.RunWith;


    import org.springframework.beans.factory.annotation.Autowired;


    import org.springframework.boot.test.context.SpringBootTest;


    import org.springframework.test.context.junit4.SpringRunner;


    import lombok.extern.slf4j.Slf4j;


    @RunWith(SpringRunner.class)


    @SpringBootTest


    @Slf4j


    public class TestEntityBean {


    TestBean bean = new TestBean();


    @Autowired


    private MyCase mycase;


    //@Test


    public void test() {


    bean.setAge(123);


    bean.setName("zhangsan");


    log.info(bean.toString());


    }


    }


宁波好的整形医院www.iyestar.com