Documentation ¶
Index ¶
- type Configmgr
- func (this *Configmgr) AddPath(path ...string)
- func (this *Configmgr) Get(key string) any
- func (this *Configmgr) GetBool(key string) bool
- func (this *Configmgr) GetDuration(key string) time.Duration
- func (this *Configmgr) GetFloat(key string) float64
- func (this *Configmgr) GetInt(key string) int
- func (this *Configmgr) GetInt32(key string) int32
- func (this *Configmgr) GetInt64(key string) int64
- func (this *Configmgr) GetIntSlice(key string) []int
- func (this *Configmgr) GetSizeInBytes(key string) uint
- func (this *Configmgr) GetString(key string) string
- func (this *Configmgr) GetStringSlice(key string) []string
- func (this *Configmgr) GetTime(key string) time.Time
- func (this *Configmgr) GetUInt(key string) uint
- func (this *Configmgr) GetUInt32(key string) uint32
- func (this *Configmgr) GetUInt64(key string) uint64
- func (this *Configmgr) ReadBuffer(reader io.Reader, ext string) (err error)
- func (this *Configmgr) ReadEnvironment(prefix string) (err error)
- func (this *Configmgr) ReadFile(name, ext string) (err error)
- func (this *Configmgr) ReadString(input, ext string) (err error)
- func (this *Configmgr) Reset()
- func (this *Configmgr) Unmarshal(key string, obj any) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Configmgr ¶
type Configmgr struct {
// contains filtered or unexported fields
}
Configmgr 配置管理器, 內部使用viper實現功能, 有以下幾種讀取配置的模式
- 從檔案讀取配置: 從指定的路徑/檔名/副檔名讀取配置, 需要配合 AddPath 函式設置路徑(可多次設置來指定多個路徑來源)
- 從字串讀取配置: 從字串讀取配置, 由於內部仍然用讀取檔案的方式來處理字串, 所以必須提供來源使用的檔案格式的副檔名
- 從讀取器讀取配置: 從讀取器讀取配置, 由於內部仍然用讀取檔案的方式來處理字串, 所以必須提供來源使用的檔案格式的副檔名
- 從環境變數讀取配置: 從環境變數中讀取配置, 這需要事先決定好前綴字
以上讀取配置的模式內部都是用讀取檔案的方式來處理字串, 所以必須提供來源使用的檔案格式的副檔名, 支援的副檔名可以參考 viper.SupportedExts
當配置讀取完畢後, 需要從管理器中取得配置值時, 可以用索引字串來呼叫 Get... 系列函式來取得配置值; 或是用索引字串來呼叫 Unmarshal 來取得反序列化到結構的配置資料
當同時使用檔案/字串/讀取器以及環境變數時, viper有規定其使用順序, 上面的會覆蓋下面的配置:
- 環境變數
- 配置檔案
func (*Configmgr) GetDuration ¶
GetDuration 取得時間
func (*Configmgr) GetIntSlice ¶
GetIntSlice 取得整數列表
func (*Configmgr) GetSizeInBytes ¶
GetSizeInBytes 取得位元長度
func (*Configmgr) GetStringSlice ¶
GetStringSlice 取得字串列表
func (*Configmgr) ReadBuffer ¶
ReadBuffer 從讀取器讀取配置, 支援的副檔名可以參考 viper.SupportedExts
func (*Configmgr) ReadEnvironment ¶
ReadEnvironment 從環境變數讀取配置, 讀取時需要指定前綴字; 請注意在整個程式中只使用一個前綴字, 不然就得要在每次取得配置前, 都要執行 ReadEnvironment 來重新指定前綴字; 前綴字與第一層key之間將會以`_`連接, 第一層key與之後的key之間則以`.`連接 以下是個配置檔案與環境變數的映射範例, 假設我們將前綴字設定為 MYAPP
test: value1: a // 環境變數名稱為 MYAPP_TEST.VALUE1 value2: b // 環境變數名稱為 MYAPP_TEST.VALUE2
在上面的例子中, `test`是第一層key, `value1`與`value2`則是之後的key; 環境變數在讀取時將會轉為全大寫來搜尋
func (*Configmgr) ReadString ¶
ReadString 從字串讀取配置, 支援的副檔名可以參考 viper.SupportedExts