在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格式
配置文件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/