Go-13-配置文件读取

本文介绍了在Go项目中使用Viper库进行配置管理的方法,包括配置模块化的意义,Viper的功能特性,如读取JSON、TOML等格式的配置文件,以及配置读取顺序。通过实例展示了如何新建配置文件、解析配置并在主函数中初始化配置,从而实现从配置文件读取项目中的关键设置,如IP、端口和数据库连接等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

配置模块化

Viper

Viper的功能

Viper配置读取顺序

配置文件解析

新建配置文件

解析配置

主文件读取配置

主函数中增加配置初始化入口


目录

配置模块化

Viper

Viper的功能

Viper配置读取顺序

配置文件解析

新建配置文件

解析配置

主文件读取配置


配置模块化

为什么需要配置文件

  • 代码中对于一些可能会变化的内容,采用硬编码不便于维护
    • 如:监听的IP和端口
    • 如:数据库服务器地址和端口
    • 如:当前运行的模式(开发/测试)
    • ...

Viper

Viper的功能

Viper是国外大神spf13编写的开源配置解决方案,具有如下特性

  • 设置默认值
  • 可以读取如下格式的配置文件:JSON、TOML、YAML、HCL
  • 监控配置文件改动,并热加载配置文件
  • 支持直接设置配置项的值
  • 从环境变量读取配置
  • 从远程配置中心读取配置(etc/consul),并监控变动
    • etcd是一个分布式一致性的key-value存储技术,被用来做配置共享和服务发现
  • 从命令行flag读取配置
  • 从缓存中读取配置

Viper配置读取顺序

Viper可以同时从不同的位置读取配置,不同位置的配置具有不同的优先级,高优先级的配置会覆盖低优先级相同的配置,按优先级从高到低排列如下

  1. 通过viper.Set函数显示设置的配置
  2. 命令行参数
  3. 环境变量
  4. 配置文件
  5. Key/Value存储
  6. 默认值

配置文件解析

apiserver采用YAML格式的配置文件,采用YAML格式是因为YAML表达的格式更丰富,可读性更强

在初始化配置文件后,Viper也可以非常方便地读取多个层级的配置

读取配置只需要调用viper.GetString()、viper.GetInt()和viper.GetBool()等函数即可

新建配置文件

在apiserver/conf/config.yaml(默认配置文件名字固定为config.yaml)

runmode: debug                 # 开发模式, debug, release, test
addr: :8000                    # HTTP绑定
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值