config

package
v0.0.0-...-cfa74d8 Latest Latest
Warning

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

Go to latest
Published: Feb 27, 2023 License: BSD-3-Clause Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Tes = "test"
	Dev = "dev"
	Pro = "product"
)
View Source
const (
	DebugLevel   = "debug"
	InfoLevel    = "info"
	ErrorLevel   = "error"
	PanicLevel   = "panic"
	FatalLevel   = "fatal"
	WriteFile    = "file"
	WriteConsole = "console"
	WriteBoth    = "both"
)

Variables

View Source
var (
	Mysql              = "mysql"
	PostgreSql         = "postgreSql"
	MysqlLoadConfigErr = errors.New("mysql load config failed")
	RedisLoadConfigErr = errors.New("redis load config failed")
)

Functions

func ReadConfig

func ReadConfig(cfgPath string) (*viper.Viper, error)

ReadConfig @Date: 2023-01-08 21:55:36 @Description: 读取应用配置 @Param: cfgPath string @Return: *viper.Viper @Return: error

Types

type Config

type Config struct {
	DataBaseConfig *DataBaseConfigGroup `mapstructure:"database"`
	RedisConfig    *RedisConfig         `mapstructure:"redis"`
	JwtConfig      *JwtConfig           `mapstructure:"jwt"`
	ServerConfig   *ServerConfig        `mapstructure:"server"`
	ZapConfig      *ZapConfig           `mapstructure:"zap"`
	I18nConfig     *I18nConfig          `mapstructure:"i18n"`
	MailConfig     *MailConfig          `mapstructure:"mail"`
}

Config @Date: 2023-01-09 13:48:50 @Description: 全局配置结构体,映射了整个配置文件

func RefreshConfig

func RefreshConfig(viper *viper.Viper) (*Config, error)

RefreshConfig @Date: 2023-01-08 21:55:22 @Description: 刷新应用配置 @Param: viper viper.Viper @Return: *Config @Return: error

type DataBaseConfig

type DataBaseConfig struct {
	Enable      bool   `yaml:"enable"`
	Type        string `yaml:"type"`
	Ip          string `yaml:"ip"`
	Port        string `yaml:"port"`
	DbName      string `yaml:"dbName"`
	Config      string `yaml:"config"`
	Username    string `yaml:"username"`
	Password    string `yaml:"password"`
	MaxIldeCons int    `yaml:"maxIldeCons"`
	MaxOpenCons int    `yaml:"maxOpenCons"`
}

DataBaseConfig @Date: 2023-01-08 19:10:05 @Description: Mysql配置

type DataBaseConfigGroup

type DataBaseConfigGroup = map[string]*DataBaseConfig

type GormDBGroup

type GormDBGroup = map[string]*gorm.DB

type I18nConfig

type I18nConfig struct {
	Dir    string `mapstructure:"dir"`
	Suffix string `mapstructure:"suffix"`
}

I18nConfig @Date 2023-01-12 15:15:54 @Description: i18n配置文件结构体

type JwtConfig

type JwtConfig struct {
	AcSign string `mapstructure:"acSign"`
	ReSign string `mapstructure:"reSign"`
	AcExp  int64  `mapstructure:"acExp"`
	AcAlo  int64  `mapstructure:"acAlo"`
	ReExp  int64  `mapstructure:"reExp"`
	Issuer string `mapstructure:"issuer"`
}

func (*JwtConfig) AcAllowExpTime

func (j *JwtConfig) AcAllowExpTime() time.Duration

AcAllowExpTime @Date 2023-01-20 22:51:33 @Return time.Duration @Method @Description: 允许过期时间

func (*JwtConfig) AcExpTime

func (j *JwtConfig) AcExpTime() time.Duration

AcExpTime @Date 2023-01-20 22:46:41 @Return time.Duration @Method @Description: access-token 过期时间

func (*JwtConfig) ReExpTime

func (j *JwtConfig) ReExpTime() time.Duration

ReExpTime @Date 2023-01-20 22:46:55 @Return time.Duration @Method @Description: refresh-token 过期时间

type LogFileConfig

type LogFileConfig struct {
	MaxSize  int      `yaml:"maxSize" mapstructure:"maxSize"`
	BackUps  int      `yaml:"backups" mapstructure:"backups"`
	Compress bool     `yaml:"compress" mapstructure:"compress"`
	Output   []string `yaml:"output" mapstructure:"output"`
}

LogFileConfig @Date: 2023-01-09 16:38:45 @Description: 日志文件配置结构体

type MailConfig

type MailConfig struct {
	Host     string `mapstructure:"host"`
	Port     int    `mapstructure:"port"`
	Username string `mapstructure:"username"`
	Password string `mapstructure:"password"`
	// Expire
	// @Date 2023-02-08 17:20:50
	// @Description: 验证码过期时间
	Expire int `mapstructure:"expire"`
	// Limit
	// @Date 2023-02-08 17:20:56
	// @Description: 邮件重复发送限制
	Limit int `mapstructure:"limit"`
}

MailConfig @Date 2023-02-08 15:32:32 @Description: 邮件客户端连接配置

type MysqlConfig

type MysqlConfig struct {
	C *DataBaseConfig
}

func (MysqlConfig) Dsn

func (m MysqlConfig) Dsn() string

type RedisConfig

type RedisConfig struct {
	Options  *redis.Options
	Ip       string
	Port     string
	Password string
}

RedisConfig @Date: 2023-01-08 19:10:33 @Description: Redis配置

func (RedisConfig) RedisOptions

func (r RedisConfig) RedisOptions() *redis.Options

type ServerConfig

type ServerConfig struct {

	// Port
	// @Date 2023-01-11 16:54:44
	// @Description: 服务端口
	Port string `yaml:"port"`

	// Mode
	// @Date 2023-01-11 16:54:54
	// @Description: 运行模式 debug||test||release
	Mode string `yaml:"mode"`

	// Limit
	// @Date 2023-02-10 20:36:19
	// @Description: QPS最大值
	Limit int64 `yaml:"limit"`
	// Rate
	// @Date 2023-02-10 20:35:38
	// @Description: 令牌每秒放入令牌的比例
	Rate float64 `yaml:"rate"`

	// Cache
	// @Date 2023-02-10 21:25:38
	// @Description: 缓存时间
	Cache int64 `yaml:"cache"`
	// ReadTimeout
	// @Date 2023-01-11 16:55:10
	// @Description: http请求读取超时时间
	ReadTimeout time.Duration `yaml:"readTimeout"`

	// WriteTimeout
	// @Date 2023-01-11 16:55:20
	// @Description: http写入响应的超时时间
	WriteTimeout time.Duration `yaml:"writeTimeout"`

	// IdleTimeout
	// @Date 2023-01-11 16:55:48
	// @Description: 连接复用的超时时间
	IdleTimeout time.Duration `yaml:"idleTimeout"`

	// ReadHeaderTimeout
	// @Date 2023-01-11 16:56:07
	// @Description: 请求头读取超时时间
	ReadHeaderTimeout time.Duration `yaml:"readHeaderTimeout"`

	// MultipartMemory
	// @Date 2023-01-11 16:56:24
	// @Description: Multipart表单的大小限制
	MultipartMemory int64 `yaml:"multipartMemory"`

	// MaxHeaderBytes
	// @Date 2023-01-11 16:57:04
	// @Description: 最大请求大小
	MaxHeaderBytes int `yaml:"maxHeaderBytes"`

	// WorkDir
	// @Date 2023-01-23 22:05:37
	// @Description: 服务器的工作目录
	WorkDir string

	// StaticDir
	// @Date 2023-01-23 22:08:32
	// @Description: 静态文件的存放路径
	StaticDir string `yaml:"static" mapstructure:"static"`
}

ServerConfig @Date 2023-01-11 16:54:02 @Description: 应用配置

func (*ServerConfig) Addr

func (s *ServerConfig) Addr() string

func (*ServerConfig) AddrHost

func (s *ServerConfig) AddrHost(host string) string

func (*ServerConfig) IdleTimeOut

func (s *ServerConfig) IdleTimeOut() time.Duration

IdleTimeOut @Date 2023-01-11 16:19:19 @Return time.Duration @Description: Keep alive Http连接复用的超时时间

func (*ServerConfig) ReadHeaderTimeOut

func (s *ServerConfig) ReadHeaderTimeOut() time.Duration

ReadHeaderTimeOut @Date 2023-01-11 16:19:45 @Return time.Duration @Description: 读取Http请求头的超时时间

func (*ServerConfig) ReadTimeOut

func (s *ServerConfig) ReadTimeOut() time.Duration

ReadTimeOut @Date 2023-01-11 16:18:53 @Return time.Duration @Description: 读取Http请求的超时时间

func (*ServerConfig) WriteTimeOut

func (s *ServerConfig) WriteTimeOut() time.Duration

WriteTimeOut @Date 2023-01-11 16:19:05 @Return time.Duration @Description: 写入Http响应的超时时间

type ZapConfig

type ZapConfig struct {
	Prefix     string         `yaml:"prefix" mapstructure:""prefix`
	TimeFormat string         `yaml:"timeFormat" mapstructure:"timeFormat"`
	Level      string         `yaml:"level" mapstructure:"level"`
	Caller     bool           `yaml:"caller" mapstructure:"caller"`
	StackTrace bool           `yaml:"stackTrace" mapstructure:"stackTrace"`
	Writer     string         `yaml:"writer" mapstructure:"writer"`
	Encode     string         `yaml:"encode" mapstructure:"encode"`
	LogFile    *LogFileConfig `yaml:"logFile" mapstructure:"logFile"`
}

ZapConfig @Date: 2023-01-09 16:37:05 @Description: zap日志配置结构体

func (*ZapConfig) BuildOptions

func (z *ZapConfig) BuildOptions(levelEnabler zapcore.LevelEnabler) (options []zap.Option)

BuildOptions @Date: 2023-01-09 20:46:39 @Description: 构建Options @Receiver: z *ZapConfig @Param: levelEnabler zapcore.LevelEnabler @Return: options []zap.Option

func (*ZapConfig) ZapConsoleEncoder

func (z *ZapConfig) ZapConsoleEncoder() zapcore.Encoder

ZapConsoleEncoder @Date: 2023-01-09 15:34:21 @Description: 控制台编码器 @Return zapcore.Encoder

func (*ZapConfig) ZapConsoleWriterSyncer

func (z *ZapConfig) ZapConsoleWriterSyncer() zapcore.WriteSyncer

ZapConsoleWriterSyncer @Date: 2023-01-09 20:51:02 @Description: 获取ConsoleWriterSyncer @Receiver: z *ZapConfig @Return: zapcore.WriteSyncer

func (*ZapConfig) ZapFileEncoder

func (z *ZapConfig) ZapFileEncoder() zapcore.Encoder

ZapFileEncoder @Date: 2023-01-09 20:59:35 @Description: 文件编码器 @Receiver: z *ZapConfig @Return: zapcore.Encoder

func (*ZapConfig) ZapFileWriterSyncer

func (z *ZapConfig) ZapFileWriterSyncer() zapcore.WriteSyncer

ZapFileWriterSyncer @Date: 2023-01-09 20:52:02 @Description: 获取FileWriterSyncer @Receiver: z *ZapConfig @Return: zapcore.WriteSyncer

func (*ZapConfig) ZapLevelEnabler

func (z *ZapConfig) ZapLevelEnabler() zapcore.LevelEnabler

ZapLevelEnabler @Date: 2023-01-09 16:03:23 @Description: @Param: cfg *config.ZapConfig @Return: zapcore.LevelEnabler

Jump to

Keyboard shortcuts

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