简介

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. python ssd目标检测_【目标检测】SSD amp; pyramidbox数据增广
  2. springboot+druid+mybatis-Plus 配置详解
  3. 云服务器网站不能够上传视频,网站的视频要存到云服务器上吗
  4. restful api接口规范_如何理解RESTful API设计规范?
  5. linux批量创建ftp用户密码,批量在LINUX下建立很多FTP用户
  6. 爬虫 --- 08. 全站爬取(CrawlSpider), 分布式, 增量式爬虫
  7. python爬虫cookie
  8. 山西华夏文明历史穿越和黄河文明”研学旅行团
  9. ios审核提示:您的 Apple Developer Program 帐户已被标记为删除
  10. AliOS-Things--ESP8266-linkkitapp-配网(一)
  11. 用c语言怎么打e的x次方
  12. 基于红外传感器人体测温系统设计(STC89C51单片机)
  13. 手动可以执行脚本,crontab执行失败,可能和环境变量有关(如果涉及到环境变量)
  14. 基于深度学习的x射线图像骨龄自动特征提取
  15. 端口波特率有专门测试软件,波特率检查工具
  16. web scraper 爬取微博粉丝性别以及微博内容
  17. 视觉slam学习|基础篇01
  18. 【FAQ】软件保护系统Themida常见问题集锦(二)—“Taggant信息”功能的用途是什么?
  19. 卫星电视转 IPTV流媒体监测方案
  20. 用c语言求元素移动的次数T(n),悬赏!求C语言大神帮忙,写一个数字推盘游戏的程序(N-puzzle) 具体的要求看图片...

热门文章

  1. Express4.X版本修改默认模板jade为ejs并且试用html为视图模板后缀名
  2. iosetup mysql_InnoDB:Error:io_setup()failedwithEAGAIN
  3. 第十六章 - 垃圾回收相关概念
  4. java.lang.NoSuchFieldError: count at org.eclipse.jface.viewers.ColumnViewer$1.mouseDown
  5. python把四个图画在一个窗口_python plt多个图在同一窗口显示方法
  6. 支持移动触摸设备的简洁js幻灯片插件
  7. Agv、Rgv 车辆控制调度系统开发知识点篇
  8. oracle 行级死锁_解决Oracle数据库死锁
  9. 5G融合通信网关(应急通讯、车载通讯、视频传输)
  10. 读后感:《产品经理修炼之道》读后感