zoukankan      html  css  js  c++  java
  • 第09章—使用Lombok插件

    spring boot 系列学习记录:http://www.cnblogs.com/jinxiaohang/p/8111057.html

    码云源码地址:https://gitee.com/jinxiaohang/springboot

    〇、介绍Lombok

      我们在开发过程中,通常都会定义大量的JavaBean,然后通过IDE去生成其属性的构造器、getter、setter、equals、hashcode、toString,每个javaBean都需要写,即使是使用IDE快速创建,会不会觉得很麻烦,而且当要对某个属性进行改变时,比如命名、类型等,都需要重新去生成上面提到的这些方法,那Java中有没有一种方式能够避免这种重复的劳动呢?

      答案是有,我们来看一下下面这张图,左面是一个简单的JavaBean,在类上加上了@Data,等同右面一大串的代码。

      lombok是一款可以精减java代码、提升开发人员生产效率的辅助工具,利用注解在编译期自动生成setter、getter、toString()、constructor之类的代码。

    一、引入依赖

    如果是新建项目的,可以在这页添加依赖:

    如果是原有项目,还可以在pom.xml 引入Lombok的依赖:

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

    二、安装插件

    使用的编辑器是IDEA,所以介绍的是在IDEA上安装插件。

    1.  File > Settings > Plugins
    2. 点击 Browse repositories
    3. 搜索 Lombok Plugin
    4. 点击 Install
    5. 重启 IDEA

    三、编写实体类

    import lombok.Data;
    
    @Data
    public class UserInfo {
        private String userId;
        private String userName;
        private String password;
    }

    观察structure栏,是有Getters、 Setters方法的。

    四、测试

    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class UserInfoTest {
    
        @Test
        public void user(){
            UserInfo userInfo = new UserInfo();
            userInfo.setUserId("1");
            userInfo.setUserName("2");
            userInfo.setPassword("3");
            System.out.println(userInfo.toString());
        }
    }

     五、总结

    @Getter / @Setter

      可以作用在类上和属性上,放在类上,会对所有的非静态(non-static)属性生成Getter/Setter方法,放在属性上,会对该属性生成Getter/Setter方法。并可以指定Getter/Setter方法的访问级别。

    @EqualsAndHashCode

      默认情况下,会使用所有非瞬态(non-transient)和非静态(non-static)字段来生成equals和hascode方法,也可以指定具体使用哪些属性。

    @ToString

      生成toString方法,默认情况下,会输出类名、所有属性,属性会按照顺序输出,以逗号分割。

    @NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor

      无参构造器、部分参数构造器、全参构造器,当我们需要重载多个构造器的时候,Lombok就无能为力了。

    @Data

      @ToString, @EqualsAndHashCode, 所有属性的@Getter, 所有non-final属性的@Setter和@RequiredArgsConstructor的组合,通常情况下,我们使用这个注解就足够了。

    参考文档:https://projectlombok.org/features/all

  • 相关阅读:
    spring boot的application配置文件
    C# WinForm 中英文实现, 国际化实现的简单方法
    VS2012 2013 显示查找功能 无法具体定位 解决方法
    C#使用HttpWebRequest 进行请求,提示 基础连接已经关闭: 发送时发生错误。
    VS 默认开发环境如何更改
    C# winfrom HttpWebRequest 请求获取html网页信息和提交信息
    C# 定时器 Timers.Timer Forms.Timer
    HTTP 错误 500.21
    配置iis时,浏览项目提示 无法识别的属性“targetFramework”。请注意属性名称区分大小写。
    asp xml对象转换为string
  • 原文地址:https://www.cnblogs.com/jinxiaohang/p/8295678.html
Copyright © 2011-2022 走看看