springboot配置 yaml语法学习 注入配置文件 配置文件占位符
配置文件
SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的
-
application.properties
-
语法结构 :key=value
-
application.yml
-
语法结构 :key:空格 value
配置文件的作用 :修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了;通俗来说就是配置某些Properties中属性值
普通的值 [ 数字,布尔值,字符串 ]
k: v
字符串默认不用加上双引号或者单引号;
注意:
-
“ ” 双引号,不会转义字符串里面的特殊字符 , 特殊字符会作为本身想表示的意思;
比如 :name: "kuang shen" 输出 :kuang 换行 shen
-
'' 单引号,会转义特殊字符 , 特殊字符最终会变成和普通字符一样输出
比如 :name: ‘kuang shen’ 输出 :kuang shen
对象
object:
property1: val1
property2: val2
行内写法
object: {property1: val1,property2: val2}
数组
用 - 值表示数组中的一个元素
items: - item1 - item2 - item3
行内写法
items:[item1,items2,items3]
注入配置文件
@Value注入配置文件
@Component //注册bean public class Dog { @Value("${}") private String name; @Value("18") private Integer age; }
@ConfigurationProperties注入配置文件
将配置文件中配置的每一个属性的值,映射到这个组件中;
SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定
参数 prefix = “person” :将配置文件中的person下面的所有属性一一对应
@Component //注册bean @ConfigurationProperties(prefix = "person") public class Person { private String name; private Integer age; private Boolean happy; private Date birth; private Map<String,Object> maps; private List<Object> lists; private Dog dog; }
yaml配置文件
person: name: qinjiang age: 3 happy: false birth: 2000/01/01 maps: {k1: v1,k2: v2} lists: - code - girl - music dog: name: 旺财 age: 1
@PropertySource
加载指定的配置文件;
@PropertySource(value = "classpath:person.properties") @Component //注册bean public class Person { @Value("${name}") private String name; ...... }
在resources目录下新建person.properties文件
name=kuangshen
配置文件占位符
配置文件还可以编写占位符生成随机数
person: name: xiaoqiang${random.uuid} # 随机uuid age: ${random.int} # 随机int happy: false birth: 2000/01/01 maps: {k1: v1,k2: v2} lists: - code - girl - music dog: name: ${person.hello:other}_旺财 age: 1