背景

几个常用的 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文件添加

org.projectlombok

lombok

代码中使用(举两个例子,更多的可以看官网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;

}

在idea中解决代码中识别错误的问题

在idea中添加插件lombok(file->setting->plugins)

如果直接安装失败,可以先下载安装包,然后导入,下载地址:https://github.com/mplushnikov/lombok-intellij-plugin/releases

lombok slfj 中_lombok @Slf4j注解相关推荐

  1. @slf4j注解_SpringBoot + Redis + 注解 + 拦截器 实现接口幂等性校验

    一.概念 幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次 比如: 订单接口, 不能多次创建订单 支付接口, 重复支付同一笔订单只能扣一次钱 支付宝回调接口, 可能会多 ...

  2. lombok之@Slf4j注解

    应用背景:如果不想每次都在实体类中写private final Logger logger = LoggerFactory.getLogger(当前类名.class); 可以使用注解@Slf4j @S ...

  3. 18.案例实战:体验lombok的核心@Data和@Slf4j注解

    代码:https://github.com/NIGHTFIGHTING/spring_boot_learning/tree/master/18/agan-boot/agan-boot-lombok 添 ...

  4. 扒一扒Lombok的@Slf4j注解,我发现还有点意思。

    你好呀,我是歪歪. 不是 Log4j 爆出漏洞了嘛,然后前几天有小伙伴来问我:我项目里面用的是 Lombok 的 @Slf4j 这个会有影响吗? 你说这事多巧,我也用的这个注解,所以我当时稍微的看了一 ...

  5. lombok 中的@Data注解

    今天看到有代码中的Dao包中的类文件,写的极其简洁,甚至引起了开发工具InteliJ的报错,然后程序还能稳健地跑起来. 1 2 3 4 5 6 7 8 9 import lombok.Data; @D ...

  6. lombok中的builder注解居然是一种设计模式:让我们了解一下超级实用的“建造者模式”吧

    lombok中的builder注解本质上是为你生成了一个构造器Builder类,通过这个类我们可以构造出带此注解的对象.本质上它实现了设计模式中一种经典的模式:建造者模式 1.认识: ①一句话来说:封 ...

  7. slf4j注解log报错_SpringBoot自定义日志注解,用于数据库记录操作日志,你用过吗?...

    大家好,我是程序员7歌! 今天我将为大家讲解如何通过自定义注解记录接口访问日志.一般的开发中,有两种方式可以记录日志信息,第一种:把接口日志信息保存到日志文件中,第二种:把接口操作日志保存到数据库中, ...

  8. SpringBoot 中使用 @Valid 注解 + Exception 全局处理器优雅处理参数验证

    作者:超级小豆丁 http://www.mydlq.club/article/49/ 目录 一.为什么使用 @Valid 来验证参数 二.@Valid 注解的作用 三.@Valid 的相关注解 四.使 ...

  9. SpringBoot使用@Slf4j注解

    @Slf4j注解的作用相当于private final Logger logger = LoggerFactory.getLogger(当前类名.class); 1.安装Lombok插件 2.添加po ...

最新文章

  1. django 2.0路由配置变化
  2. Windows锁定计算机C代码编程实现
  3. Nature Communications | 白凡研究组揭示结直肠癌近端淋巴结与远端器官的转移路径...
  4. jQuery中animate的一个隐藏很深的坑
  5. docker mysql 主从配置
  6. Python开发【第二篇】:初识Python
  7. 虚拟机如何装linux6,如何在vmvare中安装redhat linux6虚拟机
  8. 企业内网巡航扫描神器
  9. Android之ContentProvider总结
  10. linux安装ADS软件,Ubuntu 10.10下安装ADS 2009 Update1
  11. C语言大作业:车辆信息管理系统
  12. Vitis指南 | Xilinx Vitis 系列(一)
  13. [博学谷学习记录]超强总结,用心分享|第07节 常用的API-----笔记篇
  14. 【经验】面对感冒引起的发烧怎么办,总结一些有用的经验
  15. java中map和表单字符串相互转换
  16. python中str是什么函数_python里的str是什么函数
  17. 添加网络计算机后打印乱码,Windows7系统打印机无法打印出现乱码的解决方法
  18. golang 使用ssl连接smtp发送邮件
  19. java common log使用,log4j和commons.logging日志记录的使用方法
  20. VUE 爬坑之旅 -- vue 项目中将简体转换为繁体

热门文章

  1. c语言判断字符串合法标识符,HDU 2024 C语言合法标识符(以及一些关于输入和ctype.h的内容)...
  2. swarm部署mysql_「实战篇」开源项目docker化运维部署-借助dockerSwarm搭建集群部署(九)...
  3. VC静态加载DLL和动态加载DLL
  4. #pragma预处理指令详解
  5. TNG-Hooks:有状态逻辑在标准函数中的重用和组合
  6. git-bisect last updated in 2.19.1【转】
  7. vim编辑器操作汇总
  8. python(24)下载文件
  9. Num70 债权查询 债权审核
  10. MySql中,复制旧表结构到新表