在上篇文章中简单介绍自带读取方式。springboot提供多种方式来读取
一、@ConfigurationProperties(value="my")
支持更灵活的绑定及元数据的支持,但不支持spEL
定义appConfig接收(需要set get方法)
@Component
@ConfigurationProperties(value = "my")
public class AppConfig {
private String name;
private String version;
private String firstName;
private String serverPort;
private int size;
private List<String> roles;
private List<String> servers;
......
}
application.properties属性写法(list类型有二种):
my.name=dev
my.version=2.0.0
my.firstName=dev-first
my.server-port=9090
my.size=20
my.roles[0]=user
my.roles[1]=admin
my.servers=test.baidu.com,dev.baidu.com
二、@Value需要与@PropertySource注解组合使用,能支持spEL,有严格的限制,不够灵活,不支持数组。但能自定义读取外部文件
value是路径数组,后面的文件替代前面的文件,与摆放位置有关。
@Component
@PropertySource(value={"classpath:/custom/custom.properties","file:${appHome}/app-config.properties"},encoding="UTF-8")
public class ValueConfig {
@Value("${my.name}")
public String name;
@Value("${my.version}")
public String version;
@Value("${my.firstName}")
public String firstName;
@Value("${my.server-port}")
public String serverPort;
@Value("${my.size}")
public int size;
@Value("#{'${my.servers}'.split(',')}")
public List<String> servers;
}