conf

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Sep 28, 2021 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultEnvPrefix = "APP_"

Variables

View Source
var (
	//ErrConfigAddr 没有配置的错误
	ErrConfigAddr = errors.New("没有配置... ")
	// ErrInvalidDataSource 定义没有注册的错误
	ErrInvalidDataSource = errors.New("无效的数据源,请确保方案已注册")
)
View Source
var ErrInvalidKey = errors.New("无效的key,可能在配置中不存在")

ErrInvalidKey 无效键的错误

Functions

func Apply

func Apply(conf map[string]interface{}) error

Apply @Description: @param conf @return error

func Debug

func Debug(sep string)

Debug @Description: @param sep

func Exists

func Exists(key string) bool

Exists @Description:返回键是否存在 @param key @return bool

func Get

func Get(key string) interface{}

Get @Description: 返回一个interface。对于特定的值,可以使用一个Get____方法 @param key @return interface{}

func GetBool

func GetBool(key string) bool

GetBool @Description:以带有默认defaultConfiguration的bool形式返回与键关联的值 @param key @return bool

func GetDuration

func GetDuration(key string) time.Duration

GetDuration @Description: 以Duration的形式返回与键关联的值 @param key @return time.Duration

func GetFloat64

func GetFloat64(key string) float64

GetFloat64 @Description: 以Float64的形式返回与键关联的值 @param key @return float64

func GetInt

func GetInt(key string) int

GetInt @Description:以Int的形式返回与键关联的值 @param key @return int

func GetInt64

func GetInt64(key string) int64

GetInt64 @Description: 以Int64的形式返回与键关联的值 @param key @return int64

func GetSlice

func GetSlice(key string) []interface{}

GetSlice @Description: 以interface{}数组的形式返回与键关联的值 @param key @return []interface{}

func GetString

func GetString(key string) string

GetString @Description:以带有默认defaultConfiguration的字符串形式返回与键关联的值 @param key @return string

func GetStringMap

func GetStringMap(key string) map[string]interface{}

GetStringMap @Description: 以StringMap的形式返回与键关联的值 @param key @return map[string]interface{}

func GetStringMapString

func GetStringMapString(key string) map[string]string

GetStringMapString @Description: 以map[string]string的形式返回与键关联的值 @param key @return map[string]string

func GetStringMapStringSlice

func GetStringMapStringSlice(key string) map[string][]string

GetStringMapStringSlice @Description: 以map[string][]string的形式返回与键关联的值 @param key @return map[string][]string

func GetStringSlice

func GetStringSlice(key string) []string

GetStringSlice @Description: 以String数组的形式返回与键关联的值 @param key @return []string

func GetTime

func GetTime(key string) time.Time

GetTime @Description: 以Time的形式返回与键关联的值 @param key @return time.Time

func LoadFromDataSource

func LoadFromDataSource(ds DataSource, unmarshaller Unmarshaller) error

LoadFromDataSource @Description:如果数据源支持动态配置,则从数据源加载配置 @param ds @param unmarshaller @return error

func LoadFromReader

func LoadFromReader(r io.Reader, unmarshaller Unmarshaller) error

LoadFromReader @Description:使用默认的defaultConfiguration从提供的提供程序加载配置 @param r @param unmarshaller @return error

func OnChange

func OnChange(fn func(*Configuration))

OnChange @Description: 注册change回调函数 @param fn

func OnLoaded

func OnLoaded(fn func(*Configuration))

func Register

func Register(scheme string, creator DataSourceCreatorFunc)

Register @Description:向注册中心注册一个数据源创建器的函数 @param scheme @param creator

func Reset

func Reset()

Reset @Description:重置所有默认设置

func Set

func Set(key string, val interface{})

Set @Description:设置key的配置值 @param key @param val

func Traverse

func Traverse(sep string) map[string]interface{}

Traverse @Description: @param sep @return map[string]interface{}

func UnmarshalKey

func UnmarshalKey(key string, rawVal interface{}, opts ...GetOption) error

UnmarshalKey @Description: 使用默认的defaultConfiguration将单个键解封到Struct中 @param key @param rawVal @param opts @return error

func UnmarshalWithExpect

func UnmarshalWithExpect(key string, expect interface{}) interface{}

UnmarshalWithExpect @Description: Unmarshal键,如果失败返回expect @param key @param expect @return interface{}

Types

type Configuration

type Configuration struct {
	// contains filtered or unexported fields
}

Configuration @Description:为应用程序提供配置

func New

func New() *Configuration

New @Description:使用程序构造一个新的配置 @return *Configuration

func (*Configuration) Get

func (c *Configuration) Get(key string) interface{}

Get @Description:返回与键关联的值 @receiver c @param key @return interface{}

func (*Configuration) GetBool

func (c *Configuration) GetBool(key string) bool

GetBool @Description: 以布尔值的形式返回与键关联的值 @receiver c @param key @return bool

func (*Configuration) GetDuration

func (c *Configuration) GetDuration(key string) time.Duration

GetDuration @Description: 以Duration的形式返回与键关联的值 @receiver c @param key @return time.Duration

func (*Configuration) GetFloat64

func (c *Configuration) GetFloat64(key string) float64

GetFloat64 @Description: 以Float64的形式返回与键关联的值 @receiver c @param key @return float64

func (*Configuration) GetInt

func (c *Configuration) GetInt(key string) int

GetInt @Description: 以Int的形式返回与键关联的值 @receiver c @param key @return int

func (*Configuration) GetInt64

func (c *Configuration) GetInt64(key string) int64

GetInt64 @Description: 以Int的形式返回与键关联的值 @receiver c @param key @return int64

func (*Configuration) GetSlice

func (c *Configuration) GetSlice(key string) []interface{}

GetSlice @Description: 以interface{}数组的形式返回与键关联的值 @receiver c @param key @return []interface{}

func (*Configuration) GetSliceStringMap

func (c *Configuration) GetSliceStringMap(key string) []map[string]interface{}

GetSliceStringMap @Description: 以[]map[string]interface{}的形式返回与键关联的值 @receiver c @param key @return []map[string]interface{}

func (*Configuration) GetString

func (c *Configuration) GetString(key string) string

GetString @Description:以字符串形式返回与键关联的值 @receiver c @param key @return string

func (*Configuration) GetStringMap

func (c *Configuration) GetStringMap(key string) map[string]interface{}

GetStringMap @Description: 以StringMap的形式返回与键关联的值 @receiver c @param key @return map[string]interface{}

func (*Configuration) GetStringMapString

func (c *Configuration) GetStringMapString(key string) map[string]string

GetStringMapString @Description: 以map[string]string的形式返回与键关联的值 @receiver c @param key @return map[string]string

func (*Configuration) GetStringMapStringSlice

func (c *Configuration) GetStringMapStringSlice(key string) map[string][]string

GetStringMapStringSlice @Description: 以map[string][]string的形式返回与键关联的值 @receiver c @param key @return map[string][]string

func (*Configuration) GetStringSlice

func (c *Configuration) GetStringSlice(key string) []string

GetStringSlice @Description: 以String数组的形式返回与键关联的值 @receiver c @param key @return []string

func (*Configuration) GetTime

func (c *Configuration) GetTime(key string) time.Time

GetTime @Description: 以Time的形式返回与键关联的值 @receiver c @param key @return time.Time

func (*Configuration) Load

func (c *Configuration) Load(content []byte, unmarshal Unmarshaller) error

Load @Description: 加载 @receiver c @param content @param unmarshal @return error

func (*Configuration) LoadEnvironments

func (c *Configuration) LoadEnvironments(prefix string)

LoadEnvironments @Description:带有前缀(如APP_ PREFIX_FIELD1_FIELD2)的操作系统的环境变量将被转换为prefix.field1.field2 @receiver c @param prefix

func (*Configuration) LoadFromDataSource

func (c *Configuration) LoadFromDataSource(ds DataSource, unmarshaller Unmarshaller) error

LoadFromDataSource @Description:从数据源加载数据 @receiver c @param ds @param unmarshaller @return error

func (*Configuration) LoadFromReader

func (c *Configuration) LoadFromReader(reader io.Reader, unmarshaller Unmarshaller) error

LoadFromReader @Description:从提供的数据源加载配置 @receiver c @param reader @param unmarshaller @return error

func (*Configuration) OnChange

func (c *Configuration) OnChange(fn func(*Configuration))

OnChange @Description: 注册change回调函数 @receiver c @param fn

func (*Configuration) OnLoaded

func (c *Configuration) OnLoaded(fn func(*Configuration))

OnLoaded @Description: @receiver c @param fn

func (*Configuration) Set

func (c *Configuration) Set(key string, val interface{}) error

Set @Description: 设置配置 @receiver c @param key @param val @return error

func (*Configuration) SetKeyDelim

func (c *Configuration) SetKeyDelim(delim string)

SetKeyDelim @Description:设置defaultConfiguration实例的keyDelim值 @receiver c @param delim

func (*Configuration) Sub

func (c *Configuration) Sub(key string) *Configuration

Sub @Description:返回表示此实例的子树的新Configuration实例 @receiver c @param key @return *Configuration

func (*Configuration) UnmarshalKey

func (c *Configuration) UnmarshalKey(key string, rawVal interface{}, opts ...GetOption) error

UnmarshalKey @Description:获取单个键并将其解组到Struct中 @receiver c @param key @param rawVal @param opts @return error

func (*Configuration) UnmarshalWithExpect

func (c *Configuration) UnmarshalWithExpect(key string, expect interface{}) interface{}

UnmarshalWithExpect @Description: Unmarshal键,如果失败返回expect @receiver c @param key @param expect @return interface{}

func (*Configuration) WriteConfig

func (c *Configuration) WriteConfig() error

WriteConfig @Description: 写入配置 @receiver c @return error

type DataSource

type DataSource interface {
	ReadConfig() ([]byte, error)
	IsConfigChanged() <-chan struct{}
	io.Closer
}

DataSource @Description: 数据源结构体

func NewDataSource

func NewDataSource(configAddr string) (DataSource, error)

NewDataSource @Description: 新的数据源 @param configAddr @return DataSource @return error

type DataSourceCreatorFunc

type DataSourceCreatorFunc func() DataSource

DataSourceCreatorFunc 表示数据源创建器的函数

type GetOption

type GetOption func(o *GetOptions)

GetOption ...

func BuildinModule

func BuildinModule(module string) GetOption

func Module

func Module(module string) GetOption

func Namespace

func Namespace(namespace string) GetOption

func TagName

func TagName(tag string) GetOption

设置Tag

func TagNameJSON

func TagNameJSON() GetOption

func TagNameTOML

func TagNameTOML() GetOption

func TagNameYAML

func TagNameYAML() GetOption

type GetOptions

type GetOptions struct {
	TagName   string
	Namespace string
	Module    string
}

GetOption ...

type Unmarshaller

type Unmarshaller = func([]byte, interface{}) error

Unmarshaller

Directories

Path Synopsis
datasource

Jump to

Keyboard shortcuts

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