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. 优点

    • 使用注解极大减少代码量
  2. 缺点

    • 要求队友也要安装IDE插件
    • 降低代码可读性,增加调试成本
    • jdk或者IDE升级或者版本不一致可能会有影响
    • 需要清楚知道各个注解的具体操作
    • 如使用了@Data则破坏了封装性,因为会给私有属性自动生成public的读写方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值