引入pom中依赖:

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version>
</dependency>

Lombak使用

@Data

@Data最常用的注解之一。注解在类上,提供该类所有属性的getter/setter方法,还提供了equals、canEqual、hashCode、toString方法。

更方便的是,当新增属性或减少属性时,直接删除属性定义即可,效率是否提升了很多?

@NonNull

作用于属性上,提供关于此参数的非空检查(该注解修饰的属性不能为 null),如果参数为空,则抛出空指针异常。

@Setter:注解在属性上,为属性提供 set 方法。

@Getter:注解在属性上,为属性提供 get 方法。

@Builder:构建对象,用在类上面。

@AllArgsConstructor:注解在类上,为类提供一个全参的构造方法。

@NoArgsConstructor:注解在类上,为类提供一个无参的构造方法。

@NonNull:注解在属性上,该注解修饰的属性不能为 null。

@val:注解在属性上,该注解修饰的属性不被设置为 final 类型。

@SneakyThrows:注解在方法上,用于替代try{}catch(){} 这种异常模板。

@toString:生成toString方法,默认情况下,会输出类名、所有属性,属性会按照顺序输出,以逗号分割。

@RequiredArgsConstructor:该注解通过构造来替代@Autowrited。用法如下:

@RequiredArgsConstructor(onConstructor = @__(@Autowired))
@RestController
@RequestMapping("/omponent")
public class ComponentController {private final ComponentService ComponentService;
}
ps:写在类上可以代替@AutoWired注解,需要注意的是在注入时需要用final定义,或者使用@Notnull注解

@Cleanup

作用于变量,保证该变量代表的资源会被自动关闭,默认调用资源的close()方法,如果该资源有其它关闭方法,可使用@Cleanup(“methodName”)来指定。

public void jedisExample(String[] args) {try {@Cleanup Jedis jedis = redisService.getJedis();} catch (Exception ex) {logger.error(“Jedis异常:”,ex)}
}

效果相当于:

public void jedisExample(String[] args) {Jedis jedis= null;try {jedis = redisService.getJedis();} catch (Exception e) {logger.error(“Jedis异常:”,ex)} finally {if (jedis != null) {try {jedis.close();} catch (Exception e) {e.printStackTrace();}}}
}

@Synchronized

作用于类方法或实例方法上,效果与synchronized相同。区别在于锁对象不同,对于类方法和实例方法,synchronized关键字的锁对象分别是类的class对象和this对象,而@Synchronized的锁对象分别是私有静态final对象lock和私有final对象lock。也可以指定锁对象。

public class FooExample {private final Object readLock = new Object();@Synchronizedpublic static void hello() {System.out.println("world");}@Synchronized("readLock")public void foo() {System.out.println("bar");}
}

效果相当于:

public class FooExample {private static final Object $LOCK = new Object[0];private final Object readLock = new Object();public static void hello() {synchronized ($LOCK) {System.out.println("world");}}public void foo() {synchronized (readLock) {System.out.println("bar");}}
}

val

使用val作为局部变量声明的类型,而不是实际写入类型。执行此操作时,将从初始化表达式推断出类型。

public Map<String, String> getMap() {val map = new HashMap<String, String>();map.put("1", "a");return map;
}效果相当于:public Map<String, String> getMap() {HashMap<String, String> map = new HashMap<String, String>();map.put("1", "a");return map;
}

也就是说在局部变量中,Lombok帮你推断出具体的类型,但只能用于局部变量中。

lombok常用注解相关推荐

  1. 20190905 Lombok常用注解

    Lombok常用注解 val 用于声明类型,将从初始化表达式推断出类型,仅适用于局部变量和foreach循环,而不适用于字段.声明的局部变量为final变量. Java自带类型推断随着JDK版本提升越 ...

  2. springboot依赖lombok插件、lombok常用注解

    --springboot依赖lombok插件.lombok常用注解 1 lombok插件 1.1 lombok插件简介 官方介绍如下: 意思是:lombok是一个能自动插入到编辑器和构建工具的java ...

  3. lombok常用注解整理

    转载自 https://blog.csdn.net/u011308294/article/details/78627560 简介 lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得 ...

  4. lombok常用注解使用说明

    POM添加依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok&l ...

  5. lombok常用注解大全

    lombok可以帮助我们提升日常开发的效率jar包.里面有许多实用的注解. 本文将对lombok的常用注解作使用介绍,对于一些实验性官方不推荐的注解只会简单介绍 实验性注解可能会带来一些风险. 注: ...

  6. Lombok常用注解和功能

    转载自 https://blog.csdn.net/qq_40081976/article/details/79139565 注解 val:用在局部变量前面,相当于将变量声明为final @NonNu ...

  7. Lombok工具 : 常用注解介绍 (全)

    文章目录 介绍 引入Maven依赖 常用的注解 @NoArgsConstructor/@AllArgsConstructor @RequiredArgsConstructor @Getter/@Set ...

  8. [MyBatisPlus]常用注解_@TableName_@TableId_@TableField_@TableLogic通过全局配置配置主键生成策略

    常用注解 @TableName 设置实体类所对应的表名 如果全部表都有某个前缀,难道我们要通过一个一个加注解的方式来解决实体类对应表名问题吗? 我们可以通过配置文件来解决这个问题: @TableId ...

  9. Lombok的注解简单介绍

    Lombok的注解简单介绍 背景   我们在开发过程中,通常都会定义大量的JavaBean,然后通过IDE去生成其属性的构造器.getter.setter.equals.hashcode.toStri ...

最新文章

  1. 基于RDKit探索DrugBank
  2. win10系统英雄联盟老是重新连接服务器,win10lol重新连接无法连接服务器重试该怎么才能解决...
  3. Flex Timer 定时器
  4. 关于android相机开发中遇到的内存溢出的问题
  5. Scrapy爬虫(6)爬取银行理财产品并存入MongoDB(共12w+数据)
  6. DSOframer注册使用说明
  7. 北京内推 | ​美团无人车团队招聘视觉算法实习生
  8. java图遍历求最长路径_如何在Java中使用递归实现矩阵中最长路径的返回
  9. 第二章:09流程控制[3for]
  10. 发动机冷启动和热启动的区别_「牛车实验室」AGM自动启停蓄电池解读 和普通蓄电池到底有什么区别...
  11. bootstrap-switch 不起作用 class处显示代码_注解KafkaListener不起作用,到底发生了啥?...
  12. CSU 2151 集训难度(线段树)
  13. excel制作录入和查询系统_叮咚!您有一份Excel人员信息查询系统,请您查收~
  14. spring 事务隔离级别和传播行为_Spring 事务传播行为
  15. 使用 Solr 构建企业级搜索服务器
  16. nginx(三)初步搭建nginx虚拟主机
  17. [Win Desktop] Windows 桌面应用推荐一
  18. Word 如何更新全文或某一段的field(域),如何更新参考文献或自动编号
  19. 从王者荣耀看设计模式(十.外观模式)
  20. CentOS 7 快速搭建JavaWeb开发环境并部署Spring boot项目(纯干货、详细)

热门文章

  1. 关于我在刷题时用OJ判题发现的cout相较于printf严重超时的问题
  2. oracle备份恢复(dmp文件)
  3. 记lrd的高二上学期第五次调研考试
  4. 边缘计算:你应该知道的三个趋势
  5. 钢绞线的弹性模量的计算方法_钢绞线伸长量计算方法.doc
  6. SpringBoot 接口数据加解密技巧,so easy!
  7. win10系统Jinlk固件烧写
  8. 访问图片资源403问题
  9. 现场快递柜状态采集与控制系统
  10. odoo学习必看-提问的智慧《How To Ask Questions The Smart Way》