SpringBoot中自定义properties文件配置参数并带有输入提示

来源:互联网 发布:叶修手办淘宝 编辑:程序博客网 时间:2024/06/13 05:37

说在前面的话

本文实际上是 SpringBoot 官方文档中对原数据部分的搬运加工
SpringBoot 官方文档传送门

1. 创建配置类

在项目中创建一个参数映射类如下

@ConfigurationProperties(prefix = "user.info")public class MyProperties {    private String name;    private Integer age;    public String getName() {        return name;    }    public void setName(String name) {        this.name= name;    }    public String getAge() {        return age;    }    public void setAge(String age) {        this.age= age;    }}

2. 启用配置类

用EnableConfigurationProperties启用配置类。似乎不是必须步骤,但还是以防万一吧

@SpringBootApplication@EnableConfigurationProperties({MyProperties.class})public class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class, args);    }}

3. 编写提示信息

在项目中按此路径创建一个json文件
resources/META-INF/spring-configuration-metadata.json

此处会涉及到上一步配置类的路径等问题,请自行确保路径一致,否则第4步也是不会有提示信息的

{  "hints": [    {      "name": "user.info.age",      "values": [        {          "value": 18        },        {          "value": 20        }      ]    }  ],  "groups": [    {      "sourceType": "org.xavier.config.properties.MyProperties",      "name": "随便乱取",      "type": "org.xavier.config.properties.MyProperties"    }  ],  "properties": [    {      "sourceType": "org.xavier.config.properties.MyProperties",      "name": "user.info.Name",      "type": "java.lang.String"    },    {      "sourceType": "org.xavier.config.properties.MyProperties",      "name": "user.info.age",      "type": "java.lang.Integer"    }  ]}

记得重新编译项目,编译后才生效

4. 编写配置信息

在application.properties 里就可以给配置项赋值了,例如:

user.info.name=张三user.info.age=18

IDE 如果支持该功能,会根据第3步的元数据进行输入提示(已知 IDEA 完美支持)

然后有需求的地方

@AutowiredMyProperties user;public void method(){user.getName();}

就能取到张三这个值了