Springboot整合Lombok插件使用

Springboot+Lombok

一、快速开始
首先要开发IDE支持lombok
  1. Idea可以在setting–plugins里面搜索lombok即可
  2. Eclipse可以双击lombokjar包添加Eclipse.exe即可
添加依赖
  • 注意scope是provided
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.20</version>
    <scope>provided</scope>
</dependency>
<!--lombok扩展包-->
<dependency>
    <groupId>com.github.houbb</groupId>
    <artifactId>lombok-ex</artifactId>
    <version>0.1.0</version>
    <scope>provided</scope>
</dependency>
二、@Data等JavaPOJO对象注解
  • @Setter 注解字段,生成字段的setter方法
  • @Getter 注解字段,生成字段的getter方法
  • @EqualsAndHashCode 注解类,生成的类的equals方法和hashcode方法
  • @ToString 注解类,生成类的toString方法
  • @Data 注解类,生成getter方法和setter方法和toString,equals,hashCode方法
  • @AllArgsConstructor 注解类,生成类的全参构造方法
  • @NoArgsConstructor 注解类,生成类的无参构造方法
  • @Builder 注解类,生成build内部类以及build方法
  • @SuperBuilder 注解类,生成父类的内部类,以及build方法
  • @Accessor 注解类,内部生成
@Data 
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Accessor 
public class User{
    private Long id;
    private String userName;
    private Integer age;
    
}
三、lombok高级用法
1、业务类自动创建带参数构造方法
  • 用处,业务类生成带参构造方法,避免延迟加载,省去了@Autowired或@Resource注解
  • Idea等就不会出现告警
@Service
@RequiredArgsConstructor(staticName = "of")
public class UserServiceImpl{
    
  	private SchoolService schoolService;
    private ClassInfoService classInfoService;
    
    // ... 省略其他方法
}
2、@Cleanup IO资源关闭
  • 自动生成try-catch-finally标准方式关闭IO资源
  • @Cleanup 可以在最后自动关闭IO资源
public class CleanupExample {
    
  public static void main(String[] args) throws IOException {
    @Cleanup 
    InputStream in = new FileInputStream(args[0]);
    @Cleanup 
    OutputStream out = new FileOutputStream(args[1]);
    // 省略使用in 和 out参数
  }
}
3、@Slf4j注解自动生成log对象
  • @Log @Slf4j 注解类,内部生成log方法
  • @SneakyThrows 注解方法,生成异常捕获的相关代码,需要注意异常的处理方式
  • @UtilityClass 注解在工具类,生成私有构造方法
@Slf4j
public class Demo{
    public void method(){
        log.info("日志打印....");
    }
    
}
4、@Synchronized 同步代码注解
  • 底层自动生成synchroinzed代码块
public class SynchronizedExample {
  private final Object readLock = new Object();
  
  @Synchronized
  public static void hello() {
    System.out.println("world");
  }
  
  @Synchronized("readLock")
  public void foo() {
    System.out.println("bar");
  }
}
5、@SneakyThrows自动捕获异常
  • 自动生成异常捕获
public class SynchronizedExample {
  
  @Synchronized
  public static void hello() {
    // 
  }
  
}
6、@StandardException
  • 用于自定义异常,自动内联异常方法
@StandardException
public class ExampleException extends Exception {
    // 自动生成标准异常处理参数
}
四、扩展包注解使用
1、@Serial 自动生成序列号
@Serial
public class User {
    // 自动实现序列化,以及生成序列化
}
2、@ToString 使用FastJson序列化
@ToString //默认fastJson
public class ToStringTest {
}
@ToString(ToStringType.CONCAT) //可以采用拼接的方式
public class ToStringConcatTest {
}
3、@Sync 同步方法
public class SyncDemo{
    @Sync
    public void syncTest() {
        System.out.println("sync");
    }
}
4、@UnsupportedOperation 抛出不支持异常
public class UnsupportDemo{
    @UnsupportedOperation
    public static void add() {
        // 如果调用不支持方法则抛出异常
    }

}
5、@SPIAuto(“good”) 自动生成SPI

@SPIAuto("good")
public class SPIDemo implements Say{

    @Override
    public void say() {
        System.out.println("good");
    }

}

参考:
官网:https://projectlombok.org/features/all
https://github.com/houbb/lombok-ex

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值