天天看点

关于@Slf4j、@Data的使用,Lombok安装lombok安装:依赖Lombok注解含义优缺点:

今天接到一个项目,要求调试。我的idea是没有安装Lombok插件的。所以在看的时候编译器会把没有创建的对象报错提示。

那么就先看看lombok的安装:

lombok安装:

我的idea是2020.1版本的,但是我无法在idea的插件市场找到该插件。所以找到了jar包,我安装的Lombok插件版本为

lombok-plugin-0.30-EAP.jar

。直接将该文件拖入IDEA即可。等待提示安装,确认,成功,重启IDEA。至此,安装完毕。

插件地址:https://download.csdn.net/download/qq_40366738/12738331

依赖

<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
    <version>1.16.16</version><!--版本号自己选一个就行-->
</dependency>
           

Lombok注解含义

  1. @Data

    @Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。

  2. @Getter/@Setter

    注解在方法或属性上,为相应的属性自动生成Getter/Setter方法。注解于方法上时,为所有属性提供Getter/Setter方法。

  3. @ToString

    类使用@ToString注解,Lombok会生成一个toString()方法,默认情况下,会输出类名、所有属性(会按照属性定义顺序),用逗号来分割。

    通过将includeFieldNames参数设为true,就能明确的输出toString()属性。

  4. @NonNull

    该注解用在属性或构造器上,Lombok会生成一个非空的声明,可用于校验参数,能帮助避免空指针。

  5. @Cleanup

    该注解能帮助我们自动调用close()方法,很大的简化了代码。

  6. @EqualsAndHashCode

    默认情况下,会使用所有非静态(non-static)和非瞬态(non-transient)属性来生成equals和hasCode,也能通过exclude注解来排除一些属性。

  7. @NoArgsConstructor

    无参构造器

  8. @RequiredArgsConstructor

    部分参数构造器

  9. @AllArgsConstructor

    全参构造器

    Lombok没法实现多种参数构造器的重载。

  10. @Slf4j

    可以不用每次都写private final Logger logger = LoggerFactory.getLogger(当前类名.class);

优缺点:

  1. 简化代码,提高效率,使实体类看起来简洁
  2. 不支持多种参数构造器重载、降低代码可读性、团队开发时要求成员都要下载该插件(需要考虑团队成员意见)