SpringBoot基礎篇配置信息之自定義配置指定與配置內引用

更多Spring文章,歡迎點擊 一灰灰Blog-Spring專題java

前面兩篇文章,分別介紹瞭如何獲取配置信息,區分多環境的配置支持,配置信息的優先級問題,那麼掌握這些是否就足夠了呢?git

  • 如何獲取指定文件(即非application-xxx.properties)中的配置信息呢?
  • 配置文件中依賴其餘配置文件的參數如何表示?

<!-- more -->github

I. 加載自定義配置文件

前面在使用多環境的配置時,經過設置 spring.profiles.active 來選擇加載具體的配置文件,若是沒有精神潔癖的話,就把自定義的配置文件加上application-前綴,而後用這種方式來加載,固然是可行的spring

除此以外呢?app

1. PropertySource註解

這個註解能夠指定你想加載的配置文件,而後讀取其中的配置信息, 使用姿式也相對簡單dom

如在根目錄下有配置文件 biz.propertiesspring-boot

biz.token=mytoken
biz.appKey=asdf
biz.appVersion=1
biz.source=xxx.yyy

對應的加載配置的bean爲學習

package com.git.hui.boot.properties.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

/**
 * Created by @author yihui in 15:08 18/9/19.
 */
@Data
@Configuration
@PropertySource({"classpath:biz.properties"})
@ConfigurationProperties(prefix = "biz")
public class OtherProperBean {
    private String token;
    private String appKey;
    private Integer appVersion;
    private String source;
}

說明測試

  • @PropertySource({"classpath:biz.properties"}) : 從根目錄下,加載配置文件biz.properties
  • @ConfigurationProperties(prefix = "biz"): 獲取配置文件中,前綴爲biz的配置

測試相關就不寫了,有興趣的直接本身嘗試便可ui

2. PropertySource 註解不生效問題

接下來須要重點說一下的是,在我本身的測試中,最開始個人配置文件都是yml格式,而後發現上面的配置始終不生效,也不知道啥緣由;而後把配置文件換成properties文件以後,就能夠了;

至於爲何會有這個問題,先留着,後續有時間深刻研究一下

II. 配置內引用

前面的配置中,使用${random.int}這種東西,啥意思?

1. random隨機數

在配置文件中,支持經過 ${random} 來生成一些隨機值

常見的幾種用法以下

# 隨機字符串
com.kfit.blog.value=${random.value} 

# 隨機int
com.kfit.blog.number=${random.int} 

# 隨機long
com.kfit.blog.bignumber=${random.long} 

# 10之內的隨機數
com.kfit.blog.test1=${random.int(10)} 

# 10-20的隨機數
com.kfit.blog.test2=${random.int[10,20]}

2. 配置引用

在配置中,一個參數須要引用另外一個配置參數,能夠怎麼處理?

  • 使用 ${xxx} 來表示引用配置 xxx的值

biz.token=mytoken
biz.appKey=asdf
biz.appVersion=1
biz.source=xxx.yyy
# uuid的值爲 mytoken#asdf
biz.uuid=${biz.token}#${biz.appKey}

II. 其餘

0. 項目

1. 一灰灰Blog

一灰灰的我的博客,記錄全部學習和工做中的博文,歡迎你們前去逛逛

2. 聲明

盡信書則不如,已上內容,純屬一家之言,因我的能力有限,不免有疏漏和錯誤之處,如發現bug或者有更好的建議,歡迎批評指正,不吝感激

3. 掃描關注

一灰灰blog

QrCode

知識星球

goals

相關文章
相關標籤/搜索