springboot中使用lombok

Lombok介绍

  • Lombok作用

1.简化JavaBean开发,可以使用Lombok的注解让代码更加简洁

2.Java项目中,很多没有技术含量又必须存在的代码:POJO的getter/setter/toString;异常处理;I/O流的关闭操作等等,这些代码既没有技术含量,又影响着代码的美观,Lombok应运而生

  • SpringBoot和IDEA官方支持

1.IDEA2020已经内置了Lombok插件

  1. SpringBoot2.1.x之后的版本也在Starter中内置了Lombok依赖

常用注解

@Data注解在类上;提供类所有属性的getting和setting方法,此外还提供了equals、canEqual、hashCode、toString方法

@Setter:注解在属性上;为属性提供setting方法

@Gettter注解在属性上:为属性提供getting方法

@Log4j:在注解类上;为类提供一个属性名为log的 log4j日志对象

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

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

@Cleanup:可以关闭流

@Builder:被注解的类加个构造者模式

@Synchronized:加个同步锁

@SneakyThrows:等同于try/catch捕获异常

@NonNull:如果给参数加个这个注解参数为null会抛出空指针异常

@Value:注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法。

代码实践

pom.xml中引入lombok。

  • 默认使用版本仲裁,不设置版本号

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
  • 在POJO上使用的相关注解

  • @Data 等价使用了如下注解 @Setter @Getter @RequiredArgsConstructor @ToString @EqualAndHashCode

  • @RequiredArgsConstructor 说明:

在我们写controller或者Service层的时候,需要注入很多的mapper接口或者另外的service接口,这时候就会写很多的@Autowired注解,代码看起来很乱

lombok提供了一个注解:

@RequiredArgsConstructor(onConstructor =@_(@Autowired))

写在类上可以代替@Autowired注解,需要注意的是在注入时需要用fnal定义,或者使用@notnull注解

  • 两个容易踩坑的注解

  • @NoArgsConstructor 当默认的无参构造器被覆盖时,需要使用它来重写无参构造器

  • @AllArgsConstructor 全参构造器,会覆盖无参构造器,往往需要配合@NoArgsConstructor

IDEA中下载lombok插件

  • 不装插件也可以用基本的注解,比如@Data @Getter等

  • 但是不能使用其扩展功能,比如日志输出等,所以我们还是安装一下,也比较简单

  • 扩展注解。日志输出

  • @Slf4j 放在属性上面。

  • 普通方式输出:使用log.info("furn-"+furn) 进行输出

  • 占位符方式输出:使用log.info("furn={} myfurn={}",furn,furn) 进行输出。类似C语言

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值