简介
我们在配置文件中添加配置的时候,会发现当我们输入配置项的时候,会出现自动提示;但我们自己定义的类绑定 properties 配置的时候却没有提示功能,如果我们这个配置要由其他用户设置的话,其他用户根本就不知道有哪些配置;SpringBoot 提供了一个自动配置依赖用来解决这个问题
实现步骤
- 在 pom.xml 配置文件中引入 spring-boot-configuration-processor 依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
- 在 User.class 类中添加如下代码,该对象的两个属性从配置文件中设置
@Data
@Component
@ConfigurationProperties(prefix = "user")
public class User {
/**
* user name
*/
private String userName;
/**
* user gender,male or female
*/
private String gender;
}
注意
1)要想在配置文件中输入 user.xxx 的时候有配置的描述信息提示,需要按照上面的写法添加注释,双斜杠 // 这种单行注释是不生效的
2)测试发现注释上添加中文提示,在显示提示信息的时候会出现乱码,修改 IDEA 的编码格式还是无效,建议还是用英文
- 重启一下项目,只有重启了项目,提示才会生效;这是因为启动项目后,才会在 target/META-INF 目录下生成 spring-configuration-metadata.json 文件,我们自定义的配置都在这里面;也可以直接在这里面修改配置
{
"groups": [
{
"name": "user",
"type": "com.study.springboot.entity.User",
"sourceType": "com.study.springboot.entity.User"
}
],
"properties": [
{
"name": "user.gender",
"type": "java.lang.String",
"description": "user gender, male or female",
"sourceType": "com.study.springboot.entity.User"
},
{
"name": "user.user-name",
"type": "java.lang.String",
"description": "user name",
"sourceType": "com.study.springboot.entity.User"
}
],
"hints": []
}
- 最终效果如下,当输入 user 的时候就会出现提示信息