JAVA:IDE中Lambok插件使用

本文详细介绍了Lombok插件的使用,包括如何在IDE中添加依赖和下载插件,解析了Lombok的工作原理。重点讲解了常用注解如@Data、@Getter、@Setter等的含义和使用场景,并提到了在Jackson JSON序列化、代码可读性等方面需要注意的问题。通过具体的实例展示了Lombok在CarInfo、CateInfo和OrderInfo等类中的应用。
摘要由CSDN通过智能技术生成

Lambok插件使用

一、IDE加入依赖与下载插件
1.1 引入依赖
    <!-- Lombok依赖 -->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.16.18</version>
      <scope>provided</scope>
    </dependency>
1.2 下载插件

在这里插入图片描述

1.3 官网

https://projectlombok.org

1.4 工作小原理

img

Lombok本质上就是一个实现了“JSR 269 API”的程序。在使用javac的过程中,它产生作用的具体流程如下:

  • javac对源代码进行分析,生成了一棵抽象语法树(AST)
  • 运行过程中调用实现了“JSR 269 API”的Lombok程序
  • 此时Lombok就对第一步骤得到的AST进行处理,找到@Data注解所在类对应的语法树(AST),然后修改该语法树(AST),增加getter和setter方法定义的相应树节点
  • javac使用修改后的抽象语法树(AST)生成字节码文件,即给class增加新的节点(代码块)
二、常用注解
  • @Data:加在类上,Data注解包含了@Getter、@Setter、@ToString、@EqulasAndHashCode
  • @Getter:自动生成get方法
  • @Getter(AccessLevel.PROTECTED):生成的get方法的权限是protected,而不是默认的public
  • @Setter:自动生成方法
  • @Setter(AccessLevel.PROTECTED):生成的set方法的权限是protected,而不是默认的public
  • @NoArgsConstructor:无参构造器
  • @AllArgsConstructor:全参构造器
  • @ToString:重写toString方法,里面包含所有属性
  • @ToString(exclude=“column”):排除哪些属性不加入重写的ToString方法中,如果是of=“”,则代表仅包含的关系
  • @EqulasAndHashCode:重新Eqauls和HashCode方法
  • @EqulasAndHashCode(exclude=“column”):排除哪些因子
  • @Slf4j:当项目使用logback日志框架时使用
  • @Log4j:当项目使用log4j日志框架时使用
三、Lombok实际使用需注意的点
3.1 Jackson json序列化

在类需要序列化、反序列化时详细控制字段时,考虑实际情况是否使用Lombok

3.2 代码问题

使用lombok虽然能省去手动创建setter和getter方法等繁琐,但是缺降低了源代码文件的可读性和完整性,降低了阅读源代码的舒适度

3.3 @Slf4j和@Log4j

使用哪个注解则看项目使用的日志框架

3.4 选择性使用Lombok

选择适合的地方使用Lombok,例如POJO

3.5 使用反编译

不应该一开始大面积的使用Lombok,应该先使用反编译验证Lombok的可行性

四、使用实例,以实训代码为例子
4.1.1 CarInfo
public class CartInfo {
   
    private Integer cartId;

    private Integer cartUser;

    private Integer cartPro;

    private Integer cartQuantity;

    private Integer cartChecked;

    public CartInfo(Integer cartId, Integer cartUser, Integer cartPro, Integer cartQuantity, Integer cartChecked) {
   
        this.cartId = cartId;
        this.cartUser = cartUser;
        this.cartPro = cartPro;
        this.cartQuantity = cartQuantity;
        this.cartChecked = cartChecked;
    }

    public CartInfo() {
   
        super();
    }

    public Integer getCartId() {
   
        return cartId;
    }

    public void setCartId(Integer cartId) {
   
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值