Lombok

  |   0 评论   |   0 浏览

Lombok

1.Lombok 介绍

● Lombok 作用

  1. 简化 JavaBean 开发, 可以使用 Lombok 的注解让代码更加简洁
  2. Java 项目中,很多没有技术含量又必须存在的代码:POJO 的 getter/setter/toString;异常 处理;I/O 流的关闭操作等等,这些代码既没有技术含量,又影响着代码的美观,Lombok 应运而生

● SpringBoot 和 IDEA 官方支持

  1. IDEA 2020 已经内置了 Lombok 插件
  2. SpringBoot 2.1.x 之后的版本也在 Starter 中内置了 Lombok 依赖

2.Lombok 常用注解

image-20220730232227473

官方文档:https://projectlombok.org/api/lombok/package-summary.html

3.Lombok 应用实例

1.需求说明 使用 Lombok 简化 Furn.java 代码 , 让代码简洁高效

2.代码实现

1.修改pom.xml,引入lombok依赖

SpringBoot对lombok进行下了版本仲裁

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

2.修改src\main\java\com\llp\bean\Furn.java

@Component
@ConfigurationProperties(prefix = "furn01")
//@ToString //在编译时,生成toString, 默认情况下,会生成一个无参构造器
/**
 * 说明:
 * 1. Equivalent to (等价于){@code @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode}
 * 2. @Data 注解等价使用了 如下注解 @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode
 * 3. @RequiredArgsConstructor : 在我们写Controller或者service层时,需要注入很多mapper接口或者另外的service接口,这时会写很多的@Autowired 或者 @Resource注解,代码看起来很乱。lombok提供了@RequiredArgsConstructor注解卸载类上来代替@Autowired、@Resource注解,需要注意的时在注入时需要使用final定义,或者使用@notnull注解
 */
//@Data
//说明: @NoArgsConstructor 在编译时,会生成无参构造器, 默认情况下,会生成一个无参构造器
//说明:当我们有其它构造器生成时,如果你希望仍然有无参构造器就需要使用@NoArgsConstructor指定一下
//        ,否则就会覆盖无参构造器,从而代码错误
@NoArgsConstructor
//说明:@AllArgsConstructor 在编译时,会生成全参构造器
@AllArgsConstructor
@ToString
@Setter
@Getter
public class Furn {
    private Integer id;
    private String name;
    private Double price;


}

@RequiredArgsConstructor注解使用示例

image-20220731075013563

3.. 在 idea 安装 lombok 插件, 不装插件也可以用基本的注解,比如 @Data @Getter 等, 但 是不能使用其扩展功能, 比如日志输出..., 所以我们还是安装一下,也比较简单

image-20220731075406683

4.演 示 使 用 Lombok 支 持 日 志 输 出 ( 建 议 使 用 slf4j)

image-20220731075554435