首页 > 其他分享 >Golang -embed结合viper打包静态文件

Golang -embed结合viper打包静态文件

时间:2023-05-18 23:49:10浏览次数:46  
标签:fmt Golang yaml viper Println embed config

代码含有viper独立方式和go embed方式

package main

import (
    "bytes"
    "embed"
    "fmt"
    "time"
    "github.com/spf13/viper"
)

//go:embed config.yaml
var f []byte

func main() {
    // config := viper.New()
    // config.AddConfigPath("./")         //设置读取的文件路径
    // config.SetConfigName("config")    //设置读取的文件名
    // config.SetConfigType("yaml")      //设置文件的类型
    //尝试进行配置读取
    // if err := config.ReadInConfig(); err != nil {
    // fmt.Println("error: ", err)
    // fmt.Println("config:", config.GetString("SignalingServer"))
    
    //embed 方式
    config := viper.New()
    config.SetConfigType("yaml")
    config.ReadConfig(bytes.NewReader(f))

    fmt.Println("config:", config.Get("SignalingServer"))

}

 

标签:fmt,Golang,yaml,viper,Println,embed,config
From: https://www.cnblogs.com/beatleC/p/17413621.html

相关文章

  • Golang高性能编程笔记--字符串拼接
    Golang中引入五种字符串拼接方法,分别如下:1.+拼接法2.fmt.Sprintf()3.strings.Builder4.bytes.Buffer5.[]byte代码示例,这里将根据《Go语言高性能编程》中的一节,来看一下这五种具体的方法:packagemainimport( "bytes" "fmt" "math/rand" "strings......
  • Golang - go:embed
    总结GoEmbed有什么用处能够在命令行工具里嵌入WEBgoinstall快速安装,启动web该web可以提供生成代码的平台该web可以提供例如jsontostruct等数据结构转换可以大大提高Go的工具链能力能够将前端资源打包到一个二进制包里,方便部署和安装静态资源访问没有io操作,速度非常......
  • VScode下golang 同一个包下不同文件之间函数调用问题
    VScode下golang同一个包下不同文件之间函数调用问题1.问题发现最近在vscode上学习golang的相关开发,发现这样一个问题:同文件夹下的两个文件,在都处于main包的情况下,无法在mian()里直接调用另一个文件中的函数,会报错:undefined。2.原因分析从语法层面上似乎并无问题,但是Go中main......
  • Golang - viper读取配置文件
    一、介绍Viper是一个方便Go语言应用程序处理配置信息的库。它可以处理多种格式的配置。它支持的特性:设置默认值从JSON、TOML、YAML、HCL和Javaproperties文件中读取配置数据可以监视配置文件的变动、重新读取配置文件从环境变量中读取配置数据从远端配置系统中读取数据,并......
  • golang配置读取值viper
    viper简介Viper是Go应用程序的完整配置解决方案,包括12-Factor应用程序。它旨在在应用程序中工作,并且可以处理所有类型的配置需求和格式。它支持:设置默认值从JSON、TOML、YAML、HCL、envfile和Java属性配置文件中读取实时观看和重新读取配置文件(可选)从环境变量中读取从远程......
  • 成品直播源码,golang计算时间段内的工作日数量
    成品直播源码,golang计算时间段内的工作日数量 packagemainimport("fmt""time")funcmain(){start,_:=time.Parse("2006-01-02","2021-10-01")end,_:=time.Parse("2006-01-02","2021-10-31")total,days:=CalcWorkH......
  • Golang基础-字节跳动青训营
    Golang安装访问https://go.dev/,点击Download,下载对应平台安装包,安装即可如果无法访问上述网址,可以改为访问https://studygolang.com/dl下载安装如果访问github速度比较慢,建议配置gomodproxy,参考https://goproxy.cn/里面的描述配置,下载第三方依赖包的速度可以大......
  • Golang接收者方法语法糖
    1、概述在《Golang常用语法糖》这篇博文中我们讲解Golang中常用的12种语法糖,在本文我们主要讲解下接收者方法语法糖。在介绍Golang接收者方法语法糖前,先简单说下Go语言的指针(Pointer),大致上理解如下:变量名前的& 符号,是取变量的内存地址,不是取值;数据类型前的* 符号,代表......
  • golang vrrp + ipvs 实现简单的服务ha
    比较类似keeplived,但是是比较简单的集成参考图基于vrrp实现vip的处理,同时master以及backup安装基于vrrp+ipvs的程序,基于服务状态进行服务的切换处理 实现说明:对于vrrp处理可以基于包装的vrrpgolang(rongfengliang/vrrp)包,同时对于ipvs可以直接ipvs包(可以使用mqli......
  • Golang URL query contains semicolon 报错解决方案
    ​ 报错信息http:URLquerycontainssemicolon,whichisnolongerasupportedseparator;partsofthequerymaybestrippedwhenparsed;seegolang.org/issue/25192 高版本http废除了分号做分隔符,会在http库中做报警输出,基础库代码如下:func(shserverHandle......