Spring boot加载配置文件@Value
配置文件application.property
property =value
代码中:
public void test(){
@Value("${property}")
private boolean property;
}
如果是yml文件的话(注意后面带一个空格)
bean:
name: springboot
age: 20
代码:
public void test(){
@Value("${bean.name}")
private String name;
@Value("${bean.age}")
private Integer ;
}
使用@ConfigurationProperties注解赋值属性
@ConfigurationProperties(prefix = "bean")
@Component
public class test() {
private String name;
private Integer age;
// getter setter省略
}
使用自定义配置文件
如果不想在application.yml文件中配置属性,也可以在自定义的文件中配置
1.新建不是application.property或者yml的文件名为 test.yml
bean:
name : 小张
@Configuration
@PropertySource("classpath:test.yml")
@ConfigurationProperties(prefix = "bean")
public class PropertiesBean2 {
private String name;
private Integer age;
// getter setter 省略
}
这里使用@PropertySource获取配置文件的位置属性的获取使用上述
加载其他配置文件
这里是application.yml
spring:
profiles :
active : db
新建application-db.yml
bean:
name:小张
注:配置文件名称需要时application-xx.yml格式
通过spring profiles active 来确定启用那个配置文件
外部命令行参数直接传入环境变量优先级高于配置文件
YAML语法:
1、基本语法
k:(空格)v:表示一对键值对(空格必须有);
以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的
2、值的写法
字面量:普通的值(数字,字符串,布尔)
k: v:字面直接来写;
字符串默认不用加上单引号或者双引号;
"":双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思
name: "zhangsan \n lisi":输出;zhangsan 换行 lisi
'':单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据
name: ‘zhangsan \n lisi’:输出;zhangsan \n lisi
对象、Map(属性和值)(键值对):
k: v:在下一行来写对象的属性和值的关系;注意缩进
对象还是k: v的方式
行写法:
friends: {name: 小张,age: 18}