SpringBoot配置文件

springboot支持兩種配置文件

  1. application.properties
  2. application.yml(推薦yml)

在創建SpringBoot項目時默認使用的是application.properties

在這裏插入圖片描述
下面分別介紹一下這兩種配置方式:

一、application.properties這種方式

這種方式就是一般的properties文件的配置方式(key=value方式)
比如配置端口號和數據庫

#端口號,默認8080
server.port=80

#數據庫
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test_db?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456

那麼問題來了
如果配置項很多,我要找某一個配置項,那麼開發或者運維人員豈不是很麻煩
那麼接下來介紹一下application.yml配置方式

二、application.yml配置方式

1.先介紹下YAML:

YAML是一個可讀性高,用來表達數據序列化的格式。YAML 的配置文件後綴爲 .yml,這種格式和json很像,都是key: value格式,但是:後有空格
例如:

debug: true

2.YAML基本語法:

  • 大小寫敏感
  • 使用縮進表示層級關係
  • 縮進不允許使用tab,只允許空格
  • 縮進的空格數不重要,只要相同層級的元素左對齊即可
  • '#'表示註釋

3.在SpringBoot中使用application.yml配置

在resources文件夾下創建application.yml文件,刪除application.properties文件
在這裏插入圖片描述
上面的配置項就變成了這樣

#端口號,默認8080
server:
  port: 80

#數據庫
spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/test_db?useUnicode=true&characterEncoding=utf8
    driver-class-name: com.mysql.jdbc.Driver

如果我要在代碼中獲取配置文件中自定義的數據的值該怎麼辦?

三、配置自定義數據

首先在配置文件中配置自定義數據

myconfig:
  name: 張三
  description: 歡迎
  age: 24
  show-advert: true

在代碼中使用@Value註解方式獲取

package com.shunli.myspringbootdemo.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;


/**
 * @author shunli
 * @描述:
 * @create 2020/2/3
 * @since 1.0.0
 */
@Controller
public class MyController {

    @Value("${myconfig.name}")
    private String name;

    @Value("${myconfig.age}")
    private int age;

    @Value("${myconfig.description}")
    private String description;

    @Value("${myconfig.show-advert}")
    private boolean showAdvert;

    @RequestMapping("/out")
    @ResponseBody
    public String out(){
        System.out.println(this);
        return this.toString();
    }

    @Override
    public String toString() {
        return "MyController{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", description='" + description + '\'' +
                ", showAdvert=" + showAdvert +
                '}';
    }
}

四、環境配置文件

在開發過程中,開發、測試、生產環境上配置文件不相同

  • SpringBot可針對不同環境提供不同的Profile文件
  • Profile文件的默認命名格式爲application-{env}.yml
  • 使用spring.profiles.active選項來指定不同的profile

比如開發環境和測試環境的端口號,日誌配置等不相同。

新建兩個文件爲application-dev.yml和application-prd.yml
在這裏插入圖片描述
application-dev.yml文件內容

#端口號,默認8080
server:
  port: 8080

debug: false
logging:
  file:
    path: /local/soft
    name: myspringbootdemo.txt

application-prd.yml文件內容:

#端口號,默認8080
server:
  port: 80

debug: false
logging:
  file:
    path: /local/soft
    name: myspringbootdemo.txt

在application.yml文件中刪除其他配置項,使用spring.profiles.active選項來指定不同的profile

spring:
  profiles:
    active: dev

這樣在部署的時候就可以修改spring.profiles.active選項來切換配置文件

發佈了38 篇原創文章 · 獲贊 8 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章