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)
使用方法
在pom文件添加
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
代码中使用(举两个例子,更多的可以看官网api)
@Slf4j使用
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class LogExample {
}
以上将编译成
public class LogExample {
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
}
@Getter使用
private @Getter int foo;
以上将编译成
public int getFoo() {
return this.foo;
}
lombok @Slf4j注解的更多相关文章
- 【LOMBOK】能引入 @Slf4j 注解,不能识别 log 的解决方法
问题: 在pom.xml中加入引入了lombok的依赖,可以引用@Slf4j注解不能识别log 如:注:上面一篇博客,已经说明lombok的安装了,但是用的时候还有点问题. 1).把lombok.ja ...
- @Slf4j注解实现日志输出
自己写日志的时候,肯定需要: private final Logger logger = LoggerFactory.getLogger(LoggerTest.class); 每次写新的类,就需要重新 ...
- @slf4j注解找不到 log 变量
@slf4j注解找不到 log 变量 作者:oschina 来源:开源中国 时间:2017-10-11 23:05:02 我要评论 一. 检查是否添加在pom文件中添加依赖 org.projectlo ...
- eclipse 按装lombok与注解说明
原文:http://www.cnblogs.com/ywqbj/p/5711691.html 一.安装lombok 1.下载 lombok-1.16.16.jar 包 我的下载完后放到:/root ...
- 来自lombok的注解(解决idea中的找不到get,set方法,找不到log的问题)
今天看代码,发现idea报错,仔细一看调用的get,set方法bean中都没有,但是运行起来却没有问题,这个让我很疑惑.后来发现在类上有一个以前没见过的注解@Data,大概就是因为有他的原因.这个注解 ...
- @Slf4j注解的使用
项目中使用Slf4j日志: private static final Logger log=LoggerFactory.getLogger(TestMain.class); 使用@Slf4j以后,默认 ...
- 20190905 Lombok常用注解
Lombok常用注解 val 用于声明类型,将从初始化表达式推断出类型,仅适用于局部变量和foreach循环,而不适用于字段.声明的局部变量为final变量. Java自带类型推断随着JDK版本提升越 ...
- Springboot:单元测试日志打印@Slf4j 注解的使用方法
当自己写日志的时候,肯定需要: private final Logger logger = LoggerFactory.getLogger(LoggerTest.class); 每次写新的类,就需要重 ...
- lombok常用注解@Data@AllArgsConstructor@NoArgsConstructor@Builder@Accessors
原贴:https://blog.csdn.net/ChenXvYuan_001/article/details/84961992 https://blog.csdn.net/weixin_382293 ...
随机推荐
- selenium打开chrome时,出现 "您使用的是不受支持的命令行标记:--ignore-certificate-errors""
from selenium import webdriveroptions = webdriver.ChromeOptions()options.add_experimental_option(&qu ...
- @media only screen and (max-width:640px)中的问题,响应式布局
<head> <meta charset="UTF-8"> <meta name="viewport" content=" ...
- Eclipse启动Web项目 Tomcat中webapps中没有项目文件夹
原文出处:https://blog.csdn.net/JYH1314/article/details/51656233 1.eclipse不像MyEclipse默认将项目部署到tomcat安装目录下的 ...
- eclipse导入项目文件以及 import项目文件后有个红色感叹号
eclipse导入项目文件 步骤:File —>Import—>General—>Existing Projects into Workspace 然后进去选择项目文件的具体路径即可 ...
- spring框架 AOP核心详解
AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子. 一 AOP的基本概念 (1)Asp ...
- DirectX学习之第一个可运行的工程
学习一门开发语言的第一件事情当然是搭建一个可运行的环境,然后运行一个可成功执行的案例. 本人在学习DirectX的第一个工程的时候,参考了雨凇MoMo的一篇文章(https://www.xuanyus ...
- UCS2编码
UCS2就是标准的unicode编码, 它是某国际组织设计的一种文字符号编码表,包括了世界上绝大多数文字和符号,包括中文,每个字符使用2字节编码,因此叫ucs2. 这里有一篇文章对Unicode编码做 ...
- Restful Api 的好与坏
restful 的特色是接口少 get,put,post,delete 好处是容易记, 统一. 但是业务上往往不会这么简单. 不同的 user/roles 调用同一个 get 接口, 出来的结果不一定 ...
- mo系统常用语句
mo系统常用语句 一.总结 一句话总结: 1.语言:双语设置(繁体,英语)语句? {:chooseLanguage("確定要刪除么","Are you sure you ...
- 【转】 聚类算法-Kmeans算法的简单实现
1. 聚类与分类的区别: 首先要来了解的一个概念就是聚类,简单地说就是把相似的东西分到一组,同 Classification (分类)不同,对于一个 classifier ,通常需要你告诉它“这个东西 ...