zoukankan      html  css  js  c++  java
  • lombok @Slf4j注解

     

    背景

    知道有这么个东西,是因为项目中用到了@Slf4j注解。
    lombok库提供了一些注解来简化java代码
    官网:http://projectlombok.org/
    查看lombok所有api:https://projectlombok.org/api/overview-summary.html

    几个常用的 lombok 注解:

    @Data:注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
    @Setter:注解在属性上;为属性提供 setting 方法
    @Getter:注解在属性上;为属性提供 getting 方法
    @SneakyThrows:无需在签名处显式抛出异常
    @Log4j:注解在类上;为类提供一个 属性名为log 的 log4j 日志对像
    @Slf4j: 同上
    @NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
    @AllArgsConstructor:注解在类上;为类提供一个全参的构造方法

    实现原理:

    Lombok不是通过字节码改写来实现的。
    它主要是用编译器内支持的annotation processing,直接操纵抽象语法树(AST),根据需要添加新节点。
    (讲真的,不太懂,java基础不是太好,这一段来自https://www.jianshu.com/p/d0a68a9b46ae

    使用方法

    1. 在pom文件添加
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </dependency>
    1. 代码中使用(举两个例子,更多的可以看官网api)
      @Slf4j使用

      import lombok.extern.slf4j.Slf4j;
      
      @Slf4j
      public class LogExample {
      }
    1. 以上将编译成

      public class LogExample {
       private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
      }
    • @Getter使用

      private @Getter int foo;
      • 1

      以上将编译成

       public int getFoo() {
           return this.foo;
       }
    1. 在idea中解决代码中识别错误的问题
      在idea中添加插件lombok(file->setting->plugins)
      这里写图片描述
      如果直接安装失败,可以先下载安装包,然后导入,下载地址:https://github.com/mplushnikov/lombok-intellij-plugin/releases
      这里写图片描述

    这里写图片描述
    如果报以上错误,参考https://blog.csdn.net/github_38410229/article/details/79475745,下载对应ide版本的包。

  • 相关阅读:
    rpc
    route
    ROLLBACK
    rmdir -删除空目录
    rm
    rlogin
    REVOKE
    resolver
    RESET
    repquota
  • 原文地址:https://www.cnblogs.com/shoshana-kong/p/14321027.html
Copyright © 2011-2022 走看看