参考
https://blog.csdn.net/chengqiuming/article/details/83348733
步骤
application.properties
com.didispace.foo=bar
#推荐使用全小写配合-分割符的方式来配置
com.didispace.database-platform=sql
#使用[]来定位列表类型,也支持逗号分隔方式,两种方式等价
#com.didispace.post=Why Spring Boot,Why Spring Cloud
com.didispace.post[0]=Why Spring Boot
com.didispace.post[1]=Why Spring Cloud
#Map类型的定义格式如下
com.didispace.posts[0].title=Why Spring Boot
com.didispace.posts[0].content=It is perfect!
com.didispace.posts[1].title=Why Spring Cloud
com.didispace.posts[1].content=It is perfect too!
定义类对应 Map 类型
public class PostInfo {
private String title;
private String content;
}
定义类接受配置值
public class FooProperties {
private String foo;
public String getFoo() {
return foo;
}
public String getDatabasePlatform() {
return databasePlatform;
}
private String databasePlatform;
}
在应用中读取配置
@SpringBootApplication
public class Application {
public static void main(String[] args) {
ApplicationContext context = SpringApplication.run(Application.class, args);
Binder binder = Binder.get(context.getEnvironment());
// 绑定简单配置
FooProperties foo = binder.bind("com.didispace", Bindable.of(FooProperties.class)).get();
System.out.println(foo.getFoo());
// 绑定List配置
List<String> post = binder.bind("com.didispace.post", Bindable.listOf(String.class)).get();
System.out.println(post);
List<PostInfo> posts = binder.bind("com.didispace.posts", Bindable.listOf(PostInfo.class)).get();
System.out.println(posts);
// 读取配置
System.out.println(context.getEnvironment().containsProperty("com.didispace.database-platform"));
System.out.println(context.getEnvironment().containsProperty("com.didispace.databasePlatform"));
}
}