configs

package
v1.1.11 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 23, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Index

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 NewConfigmgr

func NewConfigmgr() *Configmgr

NewConfigmgr 建立配置管理器

func (*Configmgr) AddPath

func (this *Configmgr) AddPath(path ...string)

AddPath 新增配置路徑, 與 ReadFile 搭配使用, 可多次設置來指定多個路徑來源

func (*Configmgr) Get

func (this *Configmgr) Get(key string) any

Get 取得配置

func (*Configmgr) GetBool

func (this *Configmgr) GetBool(key string) bool

GetBool 取得布林值

func (*Configmgr) GetDuration

func (this *Configmgr) GetDuration(key string) time.Duration

GetDuration 取得時間

func (*Configmgr) GetFloat

func (this *Configmgr) GetFloat(key string) float64

GetFloat 取得浮點數

func (*Configmgr) GetInt

func (this *Configmgr) GetInt(key string) int

GetInt 取得整數

func (*Configmgr) GetInt32

func (this *Configmgr) GetInt32(key string) int32

GetInt32 取得整數

func (*Configmgr) GetInt64

func (this *Configmgr) GetInt64(key string) int64

GetInt64 取得整數

func (*Configmgr) GetIntSlice

func (this *Configmgr) GetIntSlice(key string) []int

GetIntSlice 取得整數列表

func (*Configmgr) GetSizeInBytes

func (this *Configmgr) GetSizeInBytes(key string) uint

GetSizeInBytes 取得位元長度

func (*Configmgr) GetString

func (this *Configmgr) GetString(key string) string

GetString 取得字串

func (*Configmgr) GetStringSlice

func (this *Configmgr) GetStringSlice(key string) []string

GetStringSlice 取得字串列表

func (*Configmgr) GetTime

func (this *Configmgr) GetTime(key string) time.Time

GetTime 取得時間

func (*Configmgr) GetUInt

func (this *Configmgr) GetUInt(key string) uint

GetUInt 取得整數

func (*Configmgr) GetUInt32

func (this *Configmgr) GetUInt32(key string) uint32

GetUInt32 取得整數

func (*Configmgr) GetUInt64

func (this *Configmgr) GetUInt64(key string) uint64

GetUInt64 取得整數

func (*Configmgr) ReadBuffer

func (this *Configmgr) ReadBuffer(reader io.Reader, ext string) (err error)

ReadBuffer 從讀取器讀取配置, 支援的副檔名可以參考 viper.SupportedExts

func (*Configmgr) ReadEnvironment

func (this *Configmgr) ReadEnvironment(prefix string) (err error)

ReadEnvironment 從環境變數讀取配置, 讀取時需要指定前綴字; 請注意在整個程式中只使用一個前綴字, 不然就得要在每次取得配置前, 都要執行 ReadEnvironment 來重新指定前綴字; 前綴字與第一層key之間將會以`_`連接, 第一層key與之後的key之間則以`.`連接 以下是個配置檔案與環境變數的映射範例, 假設我們將前綴字設定為 MYAPP

test:
  value1: a // 環境變數名稱為 MYAPP_TEST.VALUE1
  value2: b // 環境變數名稱為 MYAPP_TEST.VALUE2

在上面的例子中, `test`是第一層key, `value1`與`value2`則是之後的key; 環境變數在讀取時將會轉為全大寫來搜尋

func (*Configmgr) ReadFile

func (this *Configmgr) ReadFile(name, ext string) (err error)

ReadFile 從檔案讀取配置, 可以設定多個路徑來源, 支援的副檔名可以參考 viper.SupportedExts

func (*Configmgr) ReadString

func (this *Configmgr) ReadString(input, ext string) (err error)

ReadString 從字串讀取配置, 支援的副檔名可以參考 viper.SupportedExts

func (*Configmgr) Reset

func (this *Configmgr) Reset()

Reset 重置配置管理器

func (*Configmgr) Unmarshal

func (this *Configmgr) Unmarshal(key string, obj any) error

Unmarshal 反序列化為資料物件

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL