SpringBoot提供了许多默认配置,如果要更改默认配置,则必须在配置文件中进行更改。
缺省情况下,SpringBoot加载资源下的配置文件。
电子APP *.yml
*.YAML APP
application*.properties
这也是配置式的加载顺序,如果一个key有多个配置式,则后续加载的将复盖先前加载的配置式。
yml、yaml是同一类型的文件,后缀可以是yml、yaml中的任意一种。
一般使用application.yml。
yml文件语法
(1)常规字段:
name :张gsan
不在值上加引号
)对象,地图
对象、Map的配置方法相同。
student: #对象名称、Map名称
设置id: 1 #属性和键值对
name: chy
age: 20
score: 100
值是对象。
服务器:
port: 8080
servlet 3:
上下文路径:/spring boot
servlet的值是对象。 不配置上下文路径,默认值为/
)3)数组,List
city : [北京,上海,广州,深圳]
student : [ { name : zhangsan,age: 20},{name: lisi,age: 20}] #元素可以是对象
无论是key值还是数组元素,值都不会用引号引起来。
用key、value冒号分隔,冒号后面有空格。 加入空格后,key会变成橙色并启用。
使用yml值
对于预定义的springboot密钥,springboot将自动使用它。 如果是自定义密钥,则需要自己引用。 有两种引用方式。
(1)使用@Value
name: chy
@ restcontrollerpublicclassusercontroller {
@Value((${name} ) /使用@value向配置文件中注入值。 ${}加引号
隐私名称;
@requestmapping(/user ) (publicString handler ) ) {return name; //使用
}
}
${ }、' ${ } '无法直接使用配置文件中的值。
必须使用成员变量并使用@Value注入配置文件中的值从成员变量引用。
无论成员变量是何种数据类型,${ }都必须用引号引起来,并且会自动转换为所需的类型并注入。
用对象、映射和.填充单个字段,@value((${student.name} )。
使用数组、列表和下标填充单个元素,然后单击@value((${city[0] ) )
只能注入基本类型,不能直接注入整个对象、贴图、数组或列表。
(2) @配置属性注入对象,使用映射
如果使用@Value顺序填充对象和映射字段,则student.id、student.name和student.age具有相同的前缀student,但也可以这样填充
@ rest控制器
@ configuration properties (prefix=' student ' )/publicclassusercontroller { private intid; 隐私名称; 私有集成; 私有内得分; 公共语音设置(intid ) {this.id=id;
}公共语音集名称(字符串名称) {this.name=name;
}公共语音设置(intage ) {this.age=age;
}publicvoidsetscore(intscore ) {this.score=score;
}
@requestmapping(/user ) (publicString handler ) ) {return name; //使用
}
}
在设置前缀、设置相应的成员变量以及指定相应的设置方法时,将自动填充此字段的值。
运行,效果正常,但IDEA提示:
没有影响。 当然也可以添加到pom.xml中。
org.springframework.boot
spring-boot-configuration-processor
真的
以这种方式编写@ConfigurationProperties后,在yml中放置其前缀(对象)时,如果键入student .则字段heid (如有预选项id、name、age和score )