11.3. 配置和环境变量
说明
数据库连接信息、会话加密的 KEY、HTTP 服务的监听端口等,目前我们都写死在代码里面,一方面是不好维护,另一方面是项目的适用性很差,无法适用于不同环境。
一般情况下一个 Web 程序会有几个运行环境:
- 本地开发环境(包括团队其他成员的环境);
- 线上生产环境;
- 测试环境。
很多配置信息无法做到通用,例如说你本地开发环境 MySQL 的连接信息,很难跟线上、团队其他成员、以及测试环境的保持一致。最好的方案是每一个运行环境下,都拥有专属的一套配置信息,当项目在新的环境运行时,针对此环境配置一下即可。
Viper
spf13/viper 是一个非常优秀的第三方库,GitHub 上一万多个 star 也说明了其受欢迎程度。
Viper 是适用于 Go 应用程序的完整配置解决方案。它支持大部分类型的配置...