天天看点

springboot中使用@Value读取配置文件

在src/main/resources下添加配置文件application.properties 

例如修改端口号

在src/main/resources下添加,application-pro.properties,application-dev.properties和application.properties三个文件 

application.properties

application-pro.properties

application-dev.properties

当application.propertie设置spring.profiles.active=dev时,则说明是指定使用application-dev.properties文件进行配置

需要用@PropertySource的有:

例如非application.properties,classpath:config/my.properties指的是src/main/resources目录下config目录下的my.properties文件,

例如有多配置文件引用,若取两个配置文件中有相同属性名的值,则取值为最后一个配置文件中的值

在application.properties中的文件,直接使用@Value读取即可,applicarion的读取优先级最高

三、配置文件中配置集合类(Map、list)@Value注入map、List

yaml格式

配置文件

注意:

上面的list配置中,一定不要用“”把list所有的成员value包起来,要不然解析报错。

上面的map配置中,一定要用“”把map所对应的value包起来,要不然解析会失败,导致不能转成 Map<String,String>。

因为yaml语法中如果一个值以 “{” 开头, YAML 将认为它是一个字典, 所以我们必须引用它必须用”"

​​http://www.ansible.com.cn/docs/YAMLSyntax.html​​

yaml写法注意:

字符串默认不用加上单引号或者双引号

“”:双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思

name: “zhangsan \n lisi”:输出;zhangsan 换行 lisi

‘’:单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据

name: ‘zhangsan \n lisi’:输出;zhangsan \n lisi

properties格式

springboot中使用@Value读取配置文件

配置文件application.properties

启动类

测试类:

结果:

读取mail.properties配置

首先建立对象与配置文件映射关系

方法中使用自动注入方式,将对象注入,调用get方法获取属性值

注意:新版本的@ConfigurationProperties没有了location属性,使用@PropertySource来指定配置文件位置

prefix=”obj”指的是配置文件中的前缀,如obj.name,在定义对象属性名时为private String name;

读取配置文件中的集合时,使用List来接收数据,但List必须先实例化

测试类

ObjectProperties.java

object.properties

db.properties

结果:​​http://localhost:8080/task/test/​​

继续阅读