关于Lombok框架

Lombok框架的主要作用是通过注解可以在编译期

生成某些代码,例如Setters & Getters、hashCode()equals()toString()方法等,可以简化开发。

由于源代码(.java)文件中并没有相关代码,所以,默认情况下,开发工具无法智能提示,直接写出相关代码也会提示错误,则需要在开发工具中安装Lombok插件,安装方式:打开IntelliJ IDEA的设置,在Plugins一栏,在Marketplace中找到Lombok并安装即可。

Lombok的常用注解有:

  • @Data:添加在类上,可在编译期生成全部属性对应的Setters & Getters、hashCode()equals()toString(),使用此注解时,必须保证当前类的父类存在无参数构造方法
  • @Setter:可以添加在属性上,将仅作用于当前属性,也可以添加在类上,将作用于类中所有属性,用于生成对应的Setter方法
  • @Getter:同上,用于生成对应的Getter方法
  • @EqualsAndHashCode:添加在类上,用于生成规范的equals()hashCode(),关于equals()方法,如果2个对象的所有属性的值完全相同,则返回true,否则返回false,关于hashCode()也是如此,如果2个对象的所有属性的值完全相同,则生成的HashCode值相同,否则,不应该相同
  • @ToString:添加在类上,用于生成全属性对应的toString()方法
  • @Slf4j:添加在类上,???(这个我们一会再说)

此框架的引入,在插件安装市场进行下载安装

File->Setting->Plugings->Marketplace

 

我们已经知道了Lombok框架的存在,我们不得不说一说它的依赖

 <!-- Lombok的依赖项,主要用于简化POJO类的编写 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
            <scope>provided</scope>
        </dependency>

其实我么在springboot项目中,我们添加了如下的依赖以后,(如果我们没有下载插件)直接使用@Data注解在代码中看着像是没有起到用作,甚至调用getter和setter方法是爆红,但是我们的编译可以说是没有任何的问题,这个只是Idea没有做出正确的判断,我们就可以到插件安装市场去安装Lombok插件,这样他会引导idea做出正确的判断.时我们的界面不爆红.

@Slf4j:添加在类上,对于这个注解

在springBoot项目中,基础依赖项(spring-boot-starter)中已经包含了日志相关的依赖项.在添加了Lombok依赖项后,可以在类上添加@Slf4j 注解,则Lombok框架会在编译期生产名为log的变量,可以调用次变量的方法来输出日志.

 

trace:跟踪信息,可能包含不一定关注,但是包含了程序执行流程的信息
debug:调试信息,可能包含一些铭感内容,比如关键数据的值
info:一般信息
warn:警告信息
error:错误信息

使用Slf4j时,可以使用log变量调用以上五个级别对应的方法,来输出不同级别的日志

在SpringBoot项目中,默认的日志显示级别为info,将会显示此级别以及更重要的级别的日志,可以在application.properties中配置,logging.level.根包=日志显示级别,来设置当前显示级别.例如

# 日志的显示级别
logging.level.根包=error

 在开发实践中,应该使用trace或debug级别的日志来输出与流程相关的,敏感数据日志,使用info输出一般的,被显示在控制台也无所谓的信息,使用warn和error输出更加重要的,需要被关注的日志.

输出日志时,通常建议使用void trace(String messsge,Object...args)方法,(也有其他级别日志同样的参数列表的方法),在第一个参数String message中,可以使用{}作为占位符,表示某个变量的值,然后通过第二个参数Object...args来表示各个占位符对于的值,例如

int x =1;
int y=2;
log.info("{}+{}={}",x,y,x+y)
log.info("{}+{}+{}={}",x,y,(x+y),x+y+x+y}

使用以上做法可以避免字符串拼接,提高了代码的可阅读性,也提高了程序的执行效率(字符串拼接执行效率低下,),并且Slf4j日志中,以上第一个参数由于是字符串常量,将被缓存,如果反复执行此日志输出,执行效率也会跟高,

另外,Slf4j是一个日志标准,并不是具体的实现,通常,是通过logback或log4j等日志框架实现的,当前主流的SpringBoot版本中,都使用logback来实现.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Galaxy@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值