Golang学习之从命令行读取config配置文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/QQ243223991/article/details/82701305
Golang学习笔记之从命令行读取配置文件

注:本文为个人学习笔记,如果你看到本文有收获请给予点赞支持,如果发现错误,请告知,谢谢!

应用场景

很多时候,我们都是讲服务器环境配置参数在代码中写死,然后随着代码打不同环境的包文件
,那么如何才能动态加载我们所需要的配置文件呢?这个时候,是我们flag包发挥作用的时候了,接下来我们
直接以代码演示,我们从
【1】加载代码中配置文件  
【2】运行指定目录下配置文件  
两方面开始进行~

 方式一、读取代码默认配置文件
 现有目录结构  
 

  我们从/mini/api/etc/config/json中读取mysql相关信息,其中config.json内容为

  

{
  "mysql":{
    "name":"default-user",
    "password":"defualt-pass",
    "table":"user",
    "dataSource":"127.0.0.1:3306"
  }
}

  我们利用flag来进行文件路径引入,然后通过flag.Parse()方法开始对读到内容进行解析,一下是完整代码

var config = flag.String("config", "etc/config.json", "config file")

func main() {
	flag.Parse()
	var c config2.Config
	conf.MustLoad(*config, &c)
	log.Println(c)
}

注:flag.String(string,string,string)有三个参数,第一个参数,本文为config,为命令行带参数的命令,其对应启动命令为

go run xx.go -config /xx/xx/xx/xx.json

 如果第一个参数换为f,那么其对应启动命令就为

go run xxx.go -f /xx/xx/xx/xx.json

然后在命令行进入工程目录,运行go run xxx.go,这里的xxx为你的程序入口执行文件

那么运行结果会获取到默认配置即(/etc/config.json)中的内容,运行结果如下:

方式二、读取指定路径下配置文件

在次之前我在我的目录/Users/anqiansong/Users/anqiansong/config目录下新建了一个配置文件config.json,其内容为:

{
  "mysql":{
    "name":"test",
    "password":"1234556",
    "table":"user",
    "dataSource":"127.0.0.1:3306"
  }
}

接下来我们通过go run xxx.go -config /Users/anqiansong/config/config.json运行,其中xxx为你工程的项目入口文件

运行结果如下:

即运行结果为我们自定义的配置文件

今天的学习到此结束,继续上班了~

猜你喜欢

转载自blog.csdn.net/QQ243223991/article/details/82701305