GoFrame 配置管理-接口化設(shè)計(jì)

2022-03-29 15:25 更新

?gcfg?組件采用了接口化設(shè)計(jì),以實(shí)現(xiàn)高擴(kuò)展性。通過接口化設(shè)計(jì)的方式,使用者可以自定義對(duì)接的配置獲取方式,例如?etcd?, ?zookeeper?, ?consule?, ?kubernetes ??configmap?, ?apollo?等等。

接口定義

https://github.com/gogf/gf/v2/blob/master/os/gcfg/gcfg_adaper.go

// Adapter is the interface for configuration retrieving.
type Adapter interface {
	// Available checks and returns the configuration service is available.
	// The optional parameter `resource` specifies certain configuration resource.
	//
	// It returns true if configuration file is present in default AdapterFile, or else false.
	// Note that this function does not return error as it just does simply check for backend configuration service.
	Available(ctx context.Context, resource ...string) (ok bool)

	// Get retrieves and returns value by specified `pattern`.
	Get(ctx context.Context, pattern string) (value interface{}, err error)

	// Data retrieves and returns all configuration data as map type.
	// Note that this function may lead lots of memory usage if configuration data is too large,
	// you can implement this function if necessary.
	Data(ctx context.Context) (data map[string]interface{}, err error)
}

設(shè)置接口實(shí)現(xiàn)

// SetAdapter sets the adapter of current Config object.
func (c *Config) SetAdapter(adapter Adapter)

獲取接口實(shí)現(xiàn)

// GetAdapter returns the adapter of current Config object.
func (c *Config) GetAdapter() Adapter


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)