Categories: GoFrame 教程

GoFrame 配置管理-接口化设计

gcfg​组件采用了接口化设计,以实现高扩展性。通过接口化设计的方式,使用者可以自定义对接的配置获取方式,例如​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)
}

设置接口实现

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

获取接口实现

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

冒牌SEO

前端开发者,欢迎大家一起沟通和交流。

Share
Published by
冒牌SEO

Recent Posts

聊聊vue3中的defineProps

在Vue 3中,defineP…

1 周 ago

在 Chrome 中删除、允许和管理 Cookie

您可以选择删除现有 Cooki…

2 周 ago

自定义指令:聊聊vue中的自定义指令应用法则

今天我们来聊聊vue中的自定义…

3 周 ago

聊聊Vue中@click.stop和@click.prevent

一起来学下聊聊Vue中@cli…

4 周 ago

Nginx 基本操作:启动、停止、重启命令。

我们来学习Nginx基础操作:…

1 月 ago

Vue3:手动清理keep-alive组件缓存的方法

Vue3中手动清理keep-a…

1 月 ago