config

package
v0.1.27 Latest Latest
Warning

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

Go to latest
Published: Apr 17, 2025 License: MIT Imports: 13 Imported by: 0

Documentation

Overview

Package config 提供统一的配置管理系统

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AutoInit

func AutoInit(appName string) error

AutoInit 自动初始化配置 自动检测当前目录下的配置文件和环境变量

func Example_basic

func Example_basic()

示例1: 基本配置使用

func Example_listener

func Example_listener()

示例3: 配置变更监听

func Example_unmarshal

func Example_unmarshal()

示例2: 配置结构体映射

func Init

func Init(options ...Option) error

Init 初始化全局配置

Types

type AppConfig

type AppConfig struct {
	Name    string `config:"name"`
	Version string `config:"version"`
	Debug   bool   `config:"debug"`
	Server  struct {
		Port    int           `config:"port"`
		Timeout time.Duration `config:"timeout"`
		Host    string        `config:"host"`
	} `config:"server"`
	Database struct {
		DSN      string `config:"dsn"`
		MaxConns int    `config:"max_conns"`
		MaxIdle  int    `config:"max_idle"`
	} `config:"database"`
	Features []string               `config:"features"`
	Options  map[string]interface{} `config:"options"`
}

AppConfig 应用配置结构体

type Configuration

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

Configuration 是配置管理器的实现

func New

func New(options ...Option) (*Configuration, error)

New 创建一个新的配置管理器

func (*Configuration) AddChangeListener

func (c *Configuration) AddChangeListener(listener func(key string))

AddChangeListener 添加配置变更监听器

func (*Configuration) AllKeys

func (c *Configuration) AllKeys() []string

AllKeys 获取所有配置键

func (*Configuration) AllSettings

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

AllSettings 获取所有配置

func (*Configuration) Close

func (c *Configuration) Close() error

Close 关闭配置管理器,释放资源

func (*Configuration) Get

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

Get 获取配置值

func (*Configuration) GetBool

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

GetBool 获取布尔配置

func (*Configuration) GetDuration

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

GetDuration 获取时间段配置

func (*Configuration) GetFloat

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

GetFloat 获取浮点数配置

func (*Configuration) GetInt

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

GetInt 获取整数配置

func (*Configuration) GetString

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

GetString 获取字符串配置

func (*Configuration) GetStringMap

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

GetStringMap 获取字符串映射配置

func (*Configuration) GetStringSlice

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

GetStringSlice 获取字符串切片配置

func (*Configuration) Has

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

Has 检查配置项是否存在

func (*Configuration) Load

func (c *Configuration) Load() error

Load 加载配置

func (*Configuration) RemoveChangeListener

func (c *Configuration) RemoveChangeListener(listener func(key string))

RemoveChangeListener 移除配置变更监听器

func (*Configuration) Set

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

Set 设置配置值

func (*Configuration) Unmarshal

func (c *Configuration) Unmarshal(key string, v interface{}) error

Unmarshal 将配置反序列化到结构体

type Option

type Option func(*Configuration)

配置选项函数类型

func WithConfigFile

func WithConfigFile(file string) Option

WithConfigFile 设置配置文件路径

func WithEnvPrefix

func WithEnvPrefix(prefix string) Option

WithEnvPrefix 设置环境变量前缀

func WithFormat

func WithFormat(format string) Option

WithFormat 明确设置配置文件格式

type Provider

type Provider interface {
	// Get 获取配置项的值
	Get(key string) (interface{}, bool)

	// GetString 获取字符串配置
	GetString(key string) string

	// GetInt 获取整数配置
	GetInt(key string) int

	// GetFloat 获取浮点数配置
	GetFloat(key string) float64

	// GetBool 获取布尔配置
	GetBool(key string) bool

	// GetDuration 获取时间段配置
	GetDuration(key string) time.Duration

	// GetStringSlice 获取字符串切片配置
	GetStringSlice(key string) []string

	// GetStringMap 获取字符串映射配置
	GetStringMap(key string) map[string]interface{}

	// Set 设置配置项的值
	Set(key string, value interface{})

	// Has 检查配置项是否存在
	Has(key string) bool

	// AllSettings 获取所有配置
	AllSettings() map[string]interface{}

	// AllKeys 获取所有配置键
	AllKeys() []string

	// AddChangeListener 添加配置变更监听器
	AddChangeListener(listener func(key string))

	// RemoveChangeListener 移除配置变更监听器
	RemoveChangeListener(listener func(key string))

	// Unmarshal 将配置反序列化到结构体
	Unmarshal(key string, v interface{}) error
}

Provider 定义配置提供者接口

func Get

func Get() Provider

Get 获取全局配置实例

Jump to

Keyboard shortcuts

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