Documentation
¶
Index ¶
- Variables
- func GenConfigTemplate(format encoding.Format, config Config, dao Dao, dir string)
- func GetConfig[T any]() *T
- func ParseTagSetting(str string, sep string, settings any)
- func Start(conf Config, dao Dao, configCenter ...conf_center.ConfigCenter) func()
- type BasicConfig
- type CloseFunc
- type Config
- type Dao
- type DaoConfig
- type DaoEntity
- type DaoField
- type DaoFieldCloser
- type DaoFieldCloserWithError
- type EmbeddedPresets
- type EnvConfig
- type FileConfig
- type FlagTagSettings
- type InitAfterInject
- type InitAfterInjectConfig
- type InitBeforeInject
- type InitTagSettings
- type Marshal
- type Unmarshal
Constants ¶
This section is empty.
Variables ¶
View Source
var DaoFieldType = reflect.TypeOf((*DaoField)(nil)).Elem()
View Source
var EmbeddedPresetsType = reflect.TypeOf((*EmbeddedPresets)(nil)).Elem()
View Source
var ( GlobalConfig = &globalConfig{ BasicConfig: BasicConfig{ConfUrl: "./config.toml"}, EnvConfig: EnvConfig{Debug: true}, lock: sync.RWMutex{}, } )
约定大于配置
Functions ¶
func GenConfigTemplate ¶
func ParseTagSetting ¶
ParseTagSetting default sep ;
func Start ¶
func Start(conf Config, dao Dao, configCenter ...conf_center.ConfigCenter) func()
Types ¶
type BasicConfig ¶
type BasicConfig struct {
// 配置文件路径
ConfUrl string `` /* 152-byte string literal not displayed */
// 模块名
Module string `flag:"name:mod;short:m;default:cherry-app;usage:模块名;env:MODULE" json:"module,omitempty"`
// environment
Env string `flag:"name:env;short:e;default:dev;usage:环境;env:ENV" json:"env,omitempty"`
}
BasicConfig zh: 基本配置,包含模块名
type Config ¶
type Config interface {
// 注入之前设置默认值
InitBeforeInject
// 注入之后初始化
InitAfterInject
}
type Dao ¶
type Dao interface {
InitBeforeInject
// 注入config后执行
InitAfterInjectConfig()
// 注入dao后执行
InitAfterInject
}
type DaoEntity ¶
type DaoFieldCloser ¶
type DaoFieldCloser interface {
Close()
}
type EmbeddedPresets ¶
type EmbeddedPresets struct {
}
func (EmbeddedPresets) InitAfterInject ¶
func (u EmbeddedPresets) InitAfterInject()
func (EmbeddedPresets) InitAfterInjectConfig ¶
func (u EmbeddedPresets) InitAfterInjectConfig()
func (EmbeddedPresets) InitBeforeInject ¶
func (u EmbeddedPresets) InitBeforeInject()
type EnvConfig ¶
type EnvConfig struct {
Debug bool `flag:"name:debug;short:d;default:debug;usage:是否测试;env:DEBUG" json:"debug" toml:"debug"`
ConfigTemplateDir string `flag:"name:conf_tmpl_dir;short:t;usage:是否生成配置模板;env:CONFIG_TEMPLATE_DIR" json:"config_template_dir"`
// 代理, socks5://localhost:1080
Proxy string `flag:"name:proxy;short:p;default:'socks5://localhost:1080';usage:代理;env:HTTP_PROXY" json:"proxy"`
NoInject []string
// config字段顺序不能变,ConfigCenter 保持在最后
ConfigCenter conf_center.Config
}
type FileConfig ¶
FileConfig unused example 配置文件映射结构体,每个启动都有一个必要的配置文件,用于初始化基本配置及配置中心配置
type FlagTagSettings ¶
type InitAfterInject ¶
type InitAfterInject interface {
InitAfterInject()
}
type InitAfterInjectConfig ¶
type InitAfterInjectConfig interface {
InitAfterInjectConfig()
}
type InitBeforeInject ¶
type InitBeforeInject interface {
InitBeforeInject()
}
type InitTagSettings ¶
type InitTagSettings struct {
ConfigName string `meta:"config"`
DefaultValue string `meta:"default"`
}
func ParseInitTagSettings ¶
func ParseInitTagSettings(str string) *InitTagSettings
Source Files
¶
Click to show internal directories.
Click to hide internal directories.