1. LomBok
1.1 概述
- LomBok官方解释:Project Lombok是一个java库, 它可以自动插入编辑器和构建工具,为您的java锦上添花。永远不要再写另一个getter或equals方法,只需一个注释,您的类就有一个功能齐全的生成器,自动记录变量,等等。
- 简而言之: LomBok的主要作用就是,简化一个实体类的代码,通过注解的形式,这样好的处就是让开发代码简洁,提高开发效率。
1.2 常用注解
- 常用注解如下:
名称 | 作用 |
---|---|
@Getter/@Setter | 作用类上,生成所有成员变量的getter/setter方法;作用于成员变量上,生成该成员变量的getter/setter方法。可以设定访问权限及是否懒加载等 |
@ToString | 作用于类,覆盖默认的toString()方法,可以通过of属性限定显示某些字段,通过exclude属性排除某些字段 |
@EqualsAndHashCode | 作用于类,覆盖默认的equals和hashCode |
@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor | 作用于类上,用于生成构造函数。有staticName、access等属性 |
@AllArgsConstructor | 生成全参构造器 |
@Data | 作用于类上,是以下注解的集合 :@ToString @EqualsAndHashCode @Getter @Setter |
2. LomBok编程
2.1 安装插件与使用
2.1.1 Settings 安装插件
- 点击Settings 小扳手。
- 安装之后需要 重启IDEA 。
2.1.2 LomBok 依赖包的添加
-
需要添加依赖,打开
Pom.xml
在标签 project 内空白处使用Maven artifactId Search
- 快捷键 alt+insert 选择 Dependency。
- 右键 Generate 选择 Dependency。
-
然后添加 右键添加 maven
- 下载依赖。
- 下载依赖。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>demo</artifactId>
<groupId>cn.java</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>springioc3</artifactId>
<dependencies>
<!-- 支持Lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
</project>
2.1.3 修改实体类
-
User类。
- 注意LomBok 注解使用 。
import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; @Data //lombok自动提供get set toString hashCode equals @NoArgsConstructor //生成无参数构造 @AllArgsConstructor//生成带参数构造 @Accessors(chain = true) //链式编程 public class User { private Integer id; private String name; private Integer age; private String adress; }
-
创建Controller类。
@RestController @RequestMapping("user/") public class UserController { @RequestMapping("get") public User get(){ //1. 通过Lombok插件 添加属性 User u = new User(); u.setId(110); u.setName("北京"); u.setAge(60); u.setAdress("中国首都"); System.out.println(u);// toString 进行了重写。 return u; } @RequestMapping("get2") public User get2(){ //2.含参数构造 User u = new User(120,"天津",60,"中国嗝都"); //3. 链式编程 User u3 = new User().setId(120).setAge(60).setName("天津").setAdress("中国嗝都"); //4.判断equals() boolean e = u.equals(u3); System.out.println(e); return u; } }
-
使用RunApp类。
@SpringBootApplication public class RunApp{ public static void main(String[] args) { SpringApplication.run(RunApp.class, args); } }
3 Lombok的特点
-
优点:
- 能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,提高了一定的开发效率
- 让代码变得简洁,不用过多的去关注相应的方法
- 属性做修改时,也简化了维护为这些属性所生成的getter/setter方法等
-
缺点:
- 不能支持多参数构造函数的重载,如果需要使用多参数构造函数,需要自己重写该方法。
@Data //lombok自动提供get set toString hashCode equals @NoArgsConstructor //生成无参数构造 @AllArgsConstructor//生成带参数构造 @Accessors(chain = true) //链式编程 public class User { private Integer id; private String name; private Integer age; private String adress; //自定义多参数构造方法,进行重写。 public User(Integer id, String name) { this.id = id; this.name = name; } }