简介

twelve-factor应用提倡将配置存储在环境变量中。任何从开发环境切换到生产环境时需要修改的东西都从代码抽取到环境变量里。但是在实际开发中,如果同一台机器运行多个项目,设置环境变量容易冲突,不实用。godotenv库从.env文件中读取配置, 然后存储到程序的环境变量中。在代码中可以使用读取非常方便。godotenv源于一个 Ruby 的开源项目dotenv。

快速使用

第三方库需要先安装:

$ go get github.com/joho/godotenv

后使用:

package main

import (

"fmt"

"log"

"os"

"github.com/joho/godotenv"

)

func main() {

err := godotenv.Load()

if err != nil {

log.Fatal(err)

}

fmt.Println("name: ", os.Getenv("name"))

fmt.Println("age: ", os.Getenv("age"))

}

然后在可执行程序相同目录下,添加一个.env文件:

name = dj

age = 18

运行程序,输出:

name: dj

age: 18

可见,使用非常方便。默认情况下,godotenv读取项目根目录下的.env文件,文件中使用key = value的格式,每行一个键值对。调用godotenv.Load()即可加载,可直接调用os.Getenv("key")读取。os.Getenv是用来读取环境变量的:

package main

import (

"fmt"

"os"

)

func main() {

fmt.Println(os.Getenv("GOPATH"))

}

高级特性

自动加载

如果你有程序员的优良传统——懒,你可能连Load方法都不想自己调用。没关系,godotenv给你懒的权力!

导入github.com/joho/godotenv/autoload,配置会自动读取:

package main

import (

"fmt"

"os"

_ "github.com/joho/godotenv/autoload"

)

func main() {

fmt.Println("name: ", os.Getenv("name"))

fmt.Println("age: ", os.Getenv("age"))

}

注意,由于代码中没有显式用到godotenv库,需要使用空导入,即导入时包名前添加一个_。

看autoload包的源码,其实就是库帮你调用了Load方法:

// src/github.com/joho/godotenv/autoload/autoload.go

package autoload

/*

You can just read the .env file on import just by doing

import _ "github.com/joho/godotenv/autoload"

And bob's your mother's brother

*/

import"github.com/joho/godotenv"

func init() {

godotenv.Load()

}

仔细看注释,程序员的恶趣味

godot mysql_go godotenv配置环境变量相关推荐

  1. 如何配置mac的mysql环境_mac安装mysql数据库及配置环境变量

    安装mysql 下载mysql.我下载的是:mysql-8.0.11-macos10.13-x86_64.dmg 双击打开mysql-8.0.11-macos10.13-x86_64.dmg,然后双击 ...

  2. centos7给MySQL配置环境变量

    centos7给MySQL配置环境变量 配置好了环境变量,就可以不用每次想要使用mysql时都要到/usr/local/mysql/bin,所以需要配置以下环境变量 编辑配置文件,加入环境变量 Vi ...

  3. linux怎么安装java环境变量_如何简单的在linux上安装jdk并配置环境变量

    这篇文章是为了给我一会自己安装的时候方便使用的,所以内容很简单,平时在wendows系统上安装很容易,但是换到linux系统上面就蒙圈了. 一.下载jdk文件 ​ 下载完成后你得到了 ​ 我们将这个文 ...

  4. java基础学习总结一(java语言发展历史、jdk的下载安装以及配置环境变量)

    最近一段时间计划复习一下java基础知识,使用的视频课程是尚学堂高淇老师的,上课过程中的心得体会 直接总结一下,方便以后复习. 一:计算机语言的发展 1:机器语言,最原始的语言,主要有"01 ...

  5. tomcat下载与安装..使用和配置环境变量

    操作环境: xp, myEclipse6.5 tomcat6.0 正文: 一.下载 tomcat官方网站 http://tomcat.apache.org 在左边Download树形菜单中 点击最新版 ...

  6. Mac下安装JDK以及怎么配置环境变量?

    一.先下载JDK,下载链接:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 二.安装,双击即可自动 ...

  7. java开发环境配置环境变量_3. Java开发环境的搭建:安装JDK,配置环境变量

    1.安装JDK开发环境 开始安装JDK: 修改安装目录如下: 确定之后,单击"下一步". 注:当提示安装JRE时,可以选择不要安装. 2.配置环境变量: 对于Java程序开发而言, ...

  8. Java 学习(1) ---JDK安装和配置环境变量

    一,Java 开发的第一步,就是安装JDK(Java Development ToolKit  Java开发工具包) JDK 是Java开发的核心,因为它包括Java 运行环境,工具包和命令.当我们安 ...

  9. anaconda3配置环境变量_Python:Anaconda安装及LabelMe配置(1)

    目录 一.开发工具下载 二.安装过程 三.检测安装成功 四.安装LabelMe环境 一.开发工具下载 官网下载地址:https://www.anaconda.com/products/individu ...

最新文章

  1. 在 ServiceModel 客户端配置部分中,找不到引用协定“WebServiceSoap”的默认终结点元素。这可能是因为未找到应用程序的配置文件,或者是因为客户端元素找不到与此协定匹配的终结点元素
  2. 字符转char android,android – 如何在kotlin语言中将char转换为ascii值
  3. 数据库原理学习笔记(一)关系完整性以及数据库完整性
  4. 内置类型存储空间(32位机参考)
  5. 计算机考研:计算机组成原理考点分析
  6. 是否可以在最终课程中使用抽象方法?
  7. 实训09.11:数据库一些简单操作
  8. 【英语学习】【WOTD】cubit 释义/词源/示例
  9. linux make指定目标平台,CMake on Linux:目标平台不支持动态链接
  10. CUDA C编程权威指南 第四章 全局内存
  11. 实验6.1 定义一个基类Animal
  12. Python标准类型的分类
  13. Protel99SE应用技术问答(经典)
  14. 百度网盘永久分享链接-注册电气工程师(注电)历年考试真题PDF, Word版资料(含答案), 相关视频资料
  15. This Product is covered by one or more of the folloWing patents
  16. fighter_zzh_Steam控制器,即将推出Linux的Street Fighter V以及更多开放式游戏新闻
  17. 为什么程序员做外包会被瞧不起?
  18. matlab将声音和噪声叠加,如何用matlab产生一个多次叠加的含高斯噪声的正
  19. offer--刷题之路(持续更新)
  20. Google账户设置

热门文章

  1. 对股票的交易数据做收盘价的变动图像python
  2. 用python画哆啦a梦的头_用 Python 画个哆啦A梦
  3. Ubuntu桌面出现Accept clipboard from viewers,Send clipboard to viewers,Send primary selection to vi等三行错误时
  4. 无线路由器连接电信光猫实现拨号上网方法
  5. 测绘大地测量乙级资质新申请条件及办理流程
  6. 软件测试之 对朋友圈点赞功能进行测试
  7. 数据运营时代,如何基于AnalyticDB构建企业实时数仓?
  8. 启动Mysql时报错:mysqld_safe mysqld from pid file /usr/local/mysql/data/Linux.pid ended
  9. 白大脑比超级计算机还,《精灵宝可梦》图鉴376:大脑的运算速度堪比计算机——巨金怪...
  10. jenkins部署流程图_jenkins怎样实现自动部署的流程图