配置中心
配置相关
详细示例参考这里
配置
## 配置中心相关
asjard:
config:
## 添加配置默认配置源
## Set方法默认配置源, 如果不配置或者为空,则发送给所有配置源, 默认mem
## 具体是否能够添加配置到配置源中要看具体配置源是否实现Set功能
# setDefaultSource: mem配置获取
Get(key string, options *Options) any: 根据key获取配置
import "github.com/asjard/asjard/core/config"
val := config.Get("key", &Options{})
if val == nil {
// 配置不存在
// 或者使用config.Exist("key")判断
}GetWithPrefix(prefix string, opts ...Option) map[string]any: 根据前缀获取所有配置,返回的key是props格式的
GetString(key string, defaultValue string, opts ...Option) string: 获取配置并返回string类型,如果配置不存在则返回默认值
GetStrings(key string, defaultValue []string, opts ...Option) []string: 获取配置并返回[]string类型, 如果配置不存在则返回默认值
GetByte(key string, defaultValue []byte, opts ...Option) []byte: 获取配置并返回[]byte类型, 如果配置不存在则返回默认值
GetBool(key string, defaultValue bool, opts ...Option) bool: 获取配置并返回bool类型
GetBools(key string, defaultValue []bool, opts ...Option) []boolGetInt(key string, defaultValue int, opts ...Option) intGetInts(key string, defaultValue []int, opts ...Option) []intGetInt64(key string, defaultValue int64, opts ...Option) int64GetInt64s(key string, defaultValue []int64, opts ...Option) []int64GetInt32(key string, defaultValue int32, opts ...Option) int32GetInt32s(key string, defaultValue []int32, opts ...Option) []int32GetFloat64(key string, defaultValue float64, opts ...Option) float64GetFloat64s(key string, defaultValue []float64, opts ...Option) []float64GetFloat32(key string, defaultValue float32, opts ...Option) float32GetFloat32s(key string, defaultValue []float32, opts ...Option) []float32GetDuration(key string, defaultValue time.Duration, opts ...Option) time.Duration
字符串配置可参考time.ParseDuration, 支持单位"ns", "us" (or "µs"), "ms", "s", "m", "h".
GetTime(key string, defaultValue time.Time, opts ...Option) time.TimeExist(key string) boolGetAndUnmarshal(key string, outPtr any, opts ...Option) error: 获取配置并将对值反序列化
GetAndJsonUnmarshal(key string, outPtr any, opts ...Option) error: 配置值json反序列化GetAndYamlUnmarshal(key string, outPtr any, opts ...Option) error: 配置值yaml反序列化GetWithUnmarshal(prefix string, outPtr any, opts ...Option) error
GetWithJsonUnmarshal(prefix string, outPtr any, opts ...Option) errorGetWithYamlUnmarshal(prefix string, outPtr any, opts ...Option) error
配置加解密
加密内容始终都是以密文存储在内存中的,只有在获取时才会解密
手动解密
自动解密
配置监听
或者
AddListener(key string, callback func(*Event)): 当key发生变化时通过callback通知AddPatternListener(pattern string, callback func(*Event)): pattern正则表达式匹配key变化时通过callback通知
配置源
框架内置
环境变量,文件,内存配置源, 无需导入
配置源优先级
数字越大的优先级越高, 相同key的配置,优先级高的配置源覆盖优先级低的配置源
自定义配置源
实现如下方法
多配置源同时使用
最后更新于