04 yml文件配置
1.yaml配置文件
配置文件除了可以使用application.properties类型,还可以使用后缀名为:.yml或者.yaml的类型,也就是: application.yml或者application.yaml
yaml文件是一种简洁的非标记语言,以数据为中心,使用空白、缩进、分行组织数据,从而使得标识更加的简洁易读。
基本格式:
jdbc:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/heima
username: root
password: root
key:
abc: cba
def:
- g
- h
- j
如果两个配置文件都有,会把两个文件的配置合并,如果有重复属性,以properties中的为准。 如果是配置数组、list、set等结构的内容,那么在yml文件中格式为:
key:- value1
- value2
yml配置文件的特征:
- 树状层级结构展示配置项;
- 配置项之间如果有关系的话需要分行空两格;
- 配置项如果有值的话,那么需要在
:
之后空一格再写配置项值;
2. 多个Yaml配置文件
目标:可以将多个yml文件在application.yml文件中配置激活
分析:
yml与properties配置文件除了展示形式不相同以外,其它功能和作用都是一样的;在项目中的读取方式不需要改变。
将application.properties配置文件修改为application.yml的话:
jdbc:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/heima
username: root
password: root
当一个项目中有多个yml配置文件的时候,可以以application-**.yml命名;在application.yml中配置项目使用激活 这些配置文件即可。
创建 application-abc.yml 文件如下:
piziwang:
url:http://www.javaee.club:8080
创建 application-def.yml 文件如下:
piziwang:
url:http://www.pizwang.club:8080
创建 application.yml 文件如下:
spring:
profiles:
active: abc,def
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/springboot_test
username: root
password: root
多个文件名只需要写application-之后的名称,在多个文件之间使用,隔开。
修改代码测试:
package com.piziwang.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.sql.DataSource;
@RestController
public class HelloController {
@Autowired
private DataSource dataSource;
@Value("${pziwang.url}")
private String piziwangUrl;
@Value("${javaee.url}")
private String javaeeUrl;
@GetMapping("hello")
public String hello(){
System.out.println("datasource="+dataSource);
System.out.println(piziwangUrl);
System.out.println(javaeeUrl);
return "hello .Spring boot with dataSource is"+dataSource+piziwangUrl+javaeeUrl;
}
}