04.yml文件配置

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配置文件的特征:

  1. 树状层级结构展示配置项;
  2. 配置项之间如果有关系的话需要分行空两格;
  3. 配置项如果有值的话,那么需要在 :之后空一格再写配置项值;

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;
    }
}

你可能感兴趣的:(spring,boot)