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

  • 相关阅读:
    JDBC访问数据库的基本步骤是什么?
    Java 为每个原始类型提供了哪些包装类型:
    JDBC访问数据库的基本步骤是什么?
    String 类的常用方法都有那些?
    面向对象三大特性
    三个与取整有关的方法:
    ==和equals方法究竟有什么区别?
    &和&&的区别?
    说一说Servlet的生命周期
    spring框架学习
  • 原文地址:https://www.cnblogs.com/jinxiaohang/p/8295678.html
Copyright © 2011-2022 走看看