zoukankan      html  css  js  c++  java
  • @Data注解引出lombok包

    最近翻看一个新的项目,发现一个有趣的一点,就是这个项目的javabean并没有写对应属性的get、set、equals、toStirg等方法,却可以为属性赋值。
    仔细看发现有一个@Data注解。感觉有点意思就研究一下。这个注解是属于Lombok包的。

    Lombok优点:
    Lombok可以最大限度的简化我们的代码。比如开发中使用的javabean。普通情况下我们要添加他的get、set方法,遇到一个实体类有三四十个属性时整个类会显得很长。并且也需要花时间去添加这些get、set方法,特殊情况下也需要去重写他的构造器和equals等方法。
    此时lombok的优点就出来了,Lombok是通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。
    在.java文件中并没有显示来这些方法,不过编译后的.class文件中有这些方法。这样代码比较简洁,开发效率也提高了。

    Lombok的使用需要引入jar包,maven项目中可以直接添加依赖(版本看情况自定):

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

    常用注解:

    @Setter :此注解会生成除final属性外的其他属性的对应的setter方法;
    @Getter: 此注解会生成除final属性外的其他属性的对应的getter方法;
    @ToString:此注解会自动重写对应的toStirng方法;
    @NoArgsConstructor:此注解会生成对应的无参构造方法;
    @RequiredArgsConstructor将标记为@NoNull的属性生成一个构造器
    @HashCode:
    @Equals:
    @CanEqual:
    @Data:比较暴力,它包含很多注解,即当使用当前注解时,会自动生成包含的各种方法(@Setter+@Getter+@ToString+@EqualsAndHashCode);
    @AllArgsConstructor:此注解会生成全部属性对应的的有参构造方法(不包含final属性);
    @Log(这是一个泛型注解,具体有很多种形式)
    @EqualsAndHashCode:在JavaBean或类JavaBean中使用,使用此注解会自动重写对应的equals方法和hashCode方法;
    @Log4j:在需要打印日志的类中使用,当项目中使用了log4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可,不需要再写private final static Logger logger = LoggerFactory.getLogger(XXXXXXXXX.class);
    

    在使用以上注解需要处理参数时,处理方法如下(以@ToString注解为例,其他注解同@ToString注解):
    @ToString(exclude="column","..",..)
    意义:排除对应列所对应的属性,生成toString时不包含column,..等多个参数;
    @ToString(of="column","..",..)
    意义:只生成包含对应列所对应属性的参数的toString方法;

  • 相关阅读:
    基于CentOS7配置ArcGIS enterprise
    ArcGIS pro 发布地图服务(一)动态地图服务
    ArcGIS操作技巧——怎样把地图放到PPT中,并且进行编辑?
    ArcGIS Earth1.9最新版安装和使用教程
    ArcGIS pro2.3中添加天地图底图
    excle函数
    网闸和防火墙
    NoSQL——not onlySQL不仅仅是SQL
    leaflet学习一 入门
    openlayer3 基础学习一创建&显示地图
  • 原文地址:https://www.cnblogs.com/keyforknowledge/p/13565351.html
Copyright © 2011-2022 走看看