conf

package
v0.0.0-...-ad531c1 Latest Latest
Warning

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

Go to latest
Published: May 24, 2023 License: MIT Imports: 15 Imported by: 16

README

如何使用配置对象

先说使用

前提说明:此目录下的文件,load.go用于加载配置,其余文件均为配置对象。config.go为总配置对象

  1. 使用配置文件(真实环境使用)

这里选择了:轻量级的toml,规则少且配置强大,更易学习。 toml解析库

封装了LoadConfigFromToml()方法,用于加载全局配置对象,需要传入配置的文件路径

func LoadConfigFromToml(filePath string) error {
    // 初始化全局对象
    cfg := NewDefaultConfig()
    _, err := toml.DecodeFile(filePath, cfg)
    if err != nil {
        return fmt.Errorf("load config file error,path:%s,%s", filePath, err)
    }
    
    return cfg.LoadGlobal()
}
  1. 使用环境变量(一般测试使用)

这里选择的:环境变量映工具

封装了LoadConfigFromEnv()方法。 值得一提的是,如果使用的是.env的文件来防止环境变量。

若是GoLand,需要下载插件:envfile,启动时选择启动配置:选择envfile文件路径

若是vscode。可自行百度设置 debug 环境

func LoadConfigFromEnv() error {
	config := NewDefaultConfig()
	if err := env.Parse(config); err != nil {
		return err
	}
	return config.LoadGlobal()
}

Documentation

Overview

@Author: Ciusyan 2023/2/8

@Author: Ciusyan 2023/2/7

@Author: Ciusyan 2023/2/7

@Author: Ciusyan 2023/2/5

@Author: Ciusyan 2023/2/7

@Author: Ciusyan 2023/2/7

@Author: Ciusyan 2023/2/7

@Author: Ciusyan 2023/2/7

Index

Constants

View Source
const (
	TextFormat = LogFormat("text") // 文本格式
	JSONFormat = LogFormat("json") // Json 格式
)
View Source
const (
	ToFile   = LogTo("file")   // 文件
	ToStdout = LogTo("stdout") // 标准输出
)

Variables

This section is empty.

Functions

func ConsulClient

func ConsulClient() *api.Client

ConsulClient 获取Consul的Client

func LoadConfigFromEnv

func LoadConfigFromEnv() error

LoadConfigFromEnv 从环境变量加载

func LoadConfigFromToml

func LoadConfigFromToml(filePath string) error

LoadConfigFromToml 从Toml配置文件加载

func LoadGlobalLogger

func LoadGlobalLogger() error

LoadGlobalLogger log 为全局变量, 只需要load 即可全局使用, 依赖全局配置先初始化

func NewDefaultAliyun

func NewDefaultAliyun() *aliyun

func NewDefaultApp

func NewDefaultApp() *app

func NewDefaultConsul

func NewDefaultConsul() *consul

func NewDefaultLog

func NewDefaultLog() *log

func NewDefaultMySQL

func NewDefaultMySQL() *mySQL

func NewDefaultRegister

func NewDefaultRegister() *register

func NewMongodb

func NewMongodb() *mongodb

Types

type Config

type Config struct {
	App     *app     `toml:"app"`
	Log     *log     `toml:"log"`
	MySQL   *mySQL   `toml:"mysql"`
	Mongodb *mongodb `toml:"mongodb"`

	// Consul 注册中心
	Consul *consul `toml:"consul"`
	// aliyun oss 服务
	Aliyun *aliyun `toml:"aliyun"`
}

Config 将配置文件抽成一个对象

func C

func C() *Config

C 获取总的配置对象

func NewDefaultConfig

func NewDefaultConfig() *Config

func (*Config) LoadGlobal

func (c *Config) LoadGlobal() error

LoadGlobal 或者可以这样加载全局实例s

type Discover

type Discover struct {
	DiscoverName string `toml:"discover_name" env:"CONSUL_DISCOVER_NAME"`
	Addr         string `toml:"address" env:"CONSUL_ADDR"`
}

Discover :Discover Consul 用于服务发现 为什么服务发现和注册的配置对象要分开? 因为服务注册和服务发现的地址可能不一样: [比如:A部门的服务A是放在注册中心A的,B部门的服务B是放在注册中心B的, 然后A部门想要去内部调用B服务,它注册中心的地址总不能是自己的吧!] 当然,也可能是放在一起的。

func NewDefaultDiscover

func NewDefaultDiscover() *Discover

func (*Discover) GrpcDailUrl

func (c *Discover) GrpcDailUrl() string

GrpcDailUrl 获取待发现服务的 URL [用于grpc解析出对应的服务]

func (*Discover) SetAddr

func (d *Discover) SetAddr(addr string)

func (*Discover) SetDiscoverName

func (d *Discover) SetDiscoverName(name string)

type LogFormat

type LogFormat string

LogFormat 日志格式

type LogTo

type LogTo string

LogTo 日志记录到哪

Jump to

Keyboard shortcuts

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