侧边栏壁纸
博主头像
LYMTICS

海纳百川,有容乃大

  • 累计撰写 45 篇文章
  • 累计创建 37 个标签
  • 累计收到 19 条评论

目 录CONTENT

文章目录

Lombok 学习笔记

LYMTICS
2022-02-12 / 0 评论 / 0 点赞 / 77 阅读 / 1,489 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-02-12,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Lombok

痛点

  • getsetequals 等方法很痛苦
  • IDEA工具等可以快速生成 getset ,但是不方便修改

Lombok 可以自动生成!!!

是什么

Lombok项目是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。仅五个字符(@Data)就可以替换数百行代码从而产生干净,简洁且易于维护的Java类。

原理

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
public @interface Data {
   String staticConstructor() default "";
}

RetensionPolicy.SOURCE 表明在编译时生效

image

所以 pom.xml 中设置 <scope>provided</scope> ,即最终生成的项目中无需打包

常用注释

@Data

  • 用在类上
  • 用来生成对象中的 getset 方法,以及hashCodeequalstoString

@Getter,@Setter

  • 用在类上
  • 用来生成对象中的 getset 方法

@ToString

  • 用在类上
  • 用来生成 toString 方法

@AllArgsConstructor

  • 用在类上
  • 配合 NoArgsConstructor
  • 生成全部参数构造方法和无参数构造方法
  • 不能生成一部分的

@Accessors

  • 用在类上
  • 用来给类中的set方法开启链式调用
    chain 属性用来指定是否开启
User user = new User();
user.setId(12).setName("xX").setXX("xx");

@Slf4j

  • 用在类上
  • 用来快速给类定义日志变量

以前:

@Controller
@RequestMapping("XXX")
public class TestController {
    private Logger log = LoggerFactory.getLogger(this.getClass());
    
    @Requestmapping("findAll")
    public String findAll() {
        log.info("进入findAll")
    }
}

之后:

@Controller
@RequestMapping("XXX")
@Slf4j // 默认名称叫log
public class TestController {
    @Requestmapping("findAll")
    public String findAll() {
        log.info("进入findAll")
    }
}

原理:

相当于加了这句代码

private Logger log = LoggerFactory.getLogger(this.getClass());

安装

首先你需要在IDE中安装lombok相关的插件,然后:

Maven

<dependency>
	<groupId>org.projectlombook</groupId>
    <artifactId>lombok</artifactId>
    <version>1.xx.xx</version>
    <scope>provided</scope>
</dependency>

其他

Using lombok

0

评论区