springboot 入门三- 读取配置信息二(读取属性文件方式)

时间:2022-06-11 04:29:13

在上篇文章中简单介绍自带读取方式。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;
}