Lombok
Lombok
1.Lombok 介绍
● Lombok 作用
- 简化 JavaBean 开发, 可以使用 Lombok 的注解让代码更加简洁
- Java 项目中,很多没有技术含量又必须存在的代码:POJO 的 getter/setter/toString;异常 处理;I/O 流的关闭操作等等,这些代码既没有技术含量,又影响着代码的美观,Lombok 应运而生
● SpringBoot 和 IDEA 官方支持
- IDEA 2020 已经内置了 Lombok 插件
- SpringBoot 2.1.x 之后的版本也在 Starter 中内置了 Lombok 依赖
2.Lombok 常用注解
官方文档: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注解使用示例
3.. 在 idea 安装 lombok 插件, 不装插件也可以用基本的注解,比如 @Data @Getter 等, 但 是不能使用其扩展功能, 比如日志输出..., 所以我们还是安装一下,也比较简单
4.演 示 使 用 Lombok 支 持 日 志 输 出 ( 建 议 使 用 slf4j)