0
点赞
收藏
分享

微信扫一扫

SpringBoot中使用lombok


集成

  1. IDE安装Plugins插件=>lombok
  2. 添加maven依赖

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>

使用

基本用来简化pojo使用@Data注解即可满足

  • @Data注解于类
    相当于同时使用了@ToString、@EqualsAndHashCode、@Getter、@Setter和@RequiredArgsConstrutor注解
  • @Getter/@Setter注解于类
    为所有成员变量生成getter/setter
  • @Getter/@Setter注解于成员变量
    为该成员变量生成getter/setter并且可以设置访问权限和懒加载

//lazy = true替代经典的Double Check Lock样板代码
@Getter(value = AccessLevel.PRIVATE, lazy = true)
@Setter(value = AccessLevel.PRIVATE)

  • @EqualsAndHashCode注解于类
    覆盖默认的equals()和hashCode()
  • @NonNull注解于成员变量
    标识不能为空,为空抛出空指针异常
  • @NoArgsConstructor注解于类
    生成无参构造函数
  • @RequiredArgsConstructor注解于类
    生成final和@NonNull的成员变量的构造函数
  • @AllArgsConstructor作用于类
    生成全参构造函数
  • @Builder作用于类
    将类变为建造者模式
  • @Log作用于类
    生成日志变量
  • @Cleanup InputStream is = new FileInputStream(new File(“”"));
    自动关闭资源
  • @SneakyThrows作用于方法
    捕捉并抛出受检异常,消除样板代码,用例如下;

@SneakyThrows(UnsupportedEncodingException.class)
public String utf8ToString(byte[] bytes) {
return new String(bytes, "UTF-8");
}

  • @Synchronized注解于方法
    替换Synchronized关键字或lock锁

优缺点

  1. 优点
  • 使用注解极大减少代码量
  1. 缺点
  • 要求队友也要安装IDE插件
  • 降低代码可读性,增加调试成本
  • jdk或者IDE升级或者版本不一致可能会有影响
  • 需要清楚知道各个注解的具体操作
  • 如使用了@Data则破坏了封装性,因为会给私有属性自动生成public的读写方法


举报

相关推荐

0 条评论