Lombok的作用主要是简化JavaBean,使用Lombok之后,可以不用写JavaBean中的setter、getter、toString及构造方法。除此之外,还可以注入log日志对象。下面分别对 没有使用Lombok 和 使用Lombok后 的代码做说明。
1、在使用Lombok之前
在使用Lombok之前创建一个javaBean实体类需要为javaBean实体类写上setter、getter、toString及构造方法。以 User 为例,下面创建一个 User 类,属性分别是 id、name、age、salary,代码如下:
public class User {
private Integer id;
private String name;
private Integer age;
private Double salary;
public User() {
}
public User(Integer id, String name, Integer age, Double salary) {
this.id = id;
this.name = name;
this.age = age;
this.salary = salary;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Double getSalary() {
return salary;
}
public void setSalary(Double salary) {
this.salary = salary;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", salary=" + salary +
'}';
}
}
2、使用Lombok之后:
Lombok的使用步骤:
01、在pom文件中天添加 Lombok 依赖,如下:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
</dependency>
02、在Idea中添加 Lombok 插件
Idea2021版本之前:找到idea的file-----settings——plugin选项——搜索Lombok——安装
Idea2021版本之后:找到idea的file-----settings——plugin选项——搜索Hrisey Plugin——安装
安装完后重启IDEA即可。
03、 使用 Lombok 之后,完全可以使用注解代替 setter、getter、toString及构造方法。
- 使用注解 @Data代替 setter、getter,
- 使用注解@ToString 代替toString方法,
- 使用注解@NoArgsConstructor() 代替无参构造函数
- 使用注解@AllArgsConstructor() 代替有参构造函数
- 使用@Slf4j导入log对象
以 User 为例,下面创建一个 User 类,属性分别是 id、name、age、salary,代码如下:
@Data
@ToString
@NoArgsConstructor
@AllArgsConstructor
@Slf4j
public class User {
private Integer id;
private String name;
private Integer age;
private Double salary;
public void showInfo(){
log.info(String.format("user info is %d + %s + %d + %f", id,name,age,salary));
}
}
更多了解:https://blog.csdn.net/m0_37989980/article/details/126324284
3、devtools工具使用
devtools工具是帮助我们进行热部署的,当我修改代码后,无论是前端还是后端吗,只需要配置此工具,则可以进行热部署,不需要每次重新启动服务。步骤是
01、添加devtools依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
02、 修改代码后按 ctrl + F9 (== Build Project :编译代码)即可,无需重启服务
4、自定义配置类的提示
在自定义starter时,一般都会添加spring-boot-configuration-processor依赖,这是为什么呢?它的作用是什么?
答:
①. 将自定义的配置类生成配置元数据,所以在引用自定义STARTER的工程的YML文件中,给自定义配置初始化时,会有属性名的提示。
②. 确保在使用@ConfigurationProperties注解时,可以优雅的读取配置信息,引入该依赖后,IDEA不会出现“spring boot configuration annotation processor not configured”的错误。
在实际开发过程中会发现“SPRING相关配置”在点击的时候可以跳转到对应的定义配置类中,而自定义的配置类在application.properties或者application.yml使用时候,不会进行自动提示。且无法点击进入自定义配置类。如下:spring.datasource.type可以点击,可以进入自定义配置类。
# SPRING相关配置
spring:
# 数据源
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: org.postgresql.Driver
url: jdbc:mysql://localhost:3306/mybatis
username: root
password: root
为此,我们可以按官方文档提示,为自己自自定义的配置类添加自动提示的配置。自定义配置类我们以User类为例,User类代码如下:
@Slf4j
@Data
@ToString
@Component
@ConfigurationProperties(prefix = "user")
public class User {
private Integer id;
private String name;
private Integer age;
private Double salary;
public User() {
}
public User(Integer id, String name, Integer age, Double salary) {
this.id = id;
this.name = name;
this.age = age;
this.salary = salary;
}
}
之所以能自动提示,是因为在spring-configuration-metadata.json文件中生成了配置的元数据,为什么自定义的未生成呢?是因为自定义的配置所在工程的pom文件中没有添加spring-boot-configuration-processor依赖,spring-boot-configuration-processor的作用是在工程编译时,根据配置类自动生成配置类的元数据信息,即META-INF目录下的spring-configuration-metadata.json文件,从而可以告诉Spring容器这个JAR包中有哪些自定义的配置,我们需要添加以下依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
//我们只用于开发,打包时候不进行打包
<excludes>
<exclude>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
加入该依赖后执行:重新构建项目,可以看到预期结果,生成了spring-configuration-metadata.json。
在配置文件中写入user会自动提示。