代码拉取完成,页面将自动刷新
同步操作将从 goflyfox/gfstudy 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
GF
的配置管理由gcfg
模块实现,gcfg
模块是并发安全的,仅提供配置文件读取功能,不提供数据写入/修改功能,支持的数据文件格式包括: JSON
、XML
、YAML/YML
、TOML
、INI
,项目中开发者可以灵活地选择自己熟悉的配置文件格式来进行配置管理。
默认读取执行文件所在目录及其下的config
目录,默认读取的配置文件为config.toml
;toml
类型文件也是默认的、推荐的配置文件格式,如果想要自定义文件格式,可以通过SetFileName
方法修改默认读取的配置文件名称(如:config.json
, cfg.yaml
, cfg.xml
, cfg.ini
等等)。
注:TOML大小写敏感,必须是UTF-8
编码;
配置管理器使用了缓存机制,当配置文件第一次被读取后会被缓存到内存中,下一次读取时将会直接从缓存中获取,以提高性能。同时,配置管理器提供了对配置文件的自动检测更新机制,当配置文件在外部被修改后,配置管理器能够即时地刷新配置文件的缓存内容。
配置管理器的自动检测更新机制是gf
框架特有的一大特色。
D:.
│ config_test.go -- 测试文件
│ go.mod
│ go.sum
│ main.go -- web自动更新配置演示
│
├─config
│ config.toml -- 标准配置文件
│
└─configTest -- 定制目录和配置文件
config1.toml
config2.toml
# 模板引擎目录
viewpath = "/home/www/templates/"
# MySQL数据库配置
[database]
[[database.default]]
host = "127.0.0.1"
port = "3306"
user = "root"
pass = "123456"
name = "test1"
type = "mysql"
role = "master"
charset = "utf8"
priority = "1"
[[database.default]]
host = "127.0.0.1"
port = "3306"
user = "root"
pass = "123456"
name = "test2"
type = "mysql"
role = "master"
charset = "utf8"
priority = "1"
# Redis数据库配置
[redis]
disk = "127.0.0.1:6379,0"
cache = "127.0.0.1:6379,1"
study = "hello study"
study1 = "hello study1"
config2 = "111"
package main
import (
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/net/ghttp"
)
func main() {
s := g.Server()
// 默认路径
s.BindHandler("/", func(r *ghttp.Request) {
r.Response.Writeln("配置",g.Config().GetString("name"))
r.Response.Writeln("Welcome GoFrame!")
})
s.SetPort(80)
s.Run()
}
package main
import (
"fmt"
"github.com/gogf/gf/frame/g"
"testing"
)
// 基本配置使用
func TestConfig(t *testing.T) {
// 默认当前路径或者config路径,默认文件config.toml
// /home/www/templates/
fmt.Println(g.Config().Get("viewpath"))
fmt.Println(g.Cfg().Get("viewpath"))
// 127.0.0.1:6379,1
c := g.Cfg()
// 分组方式
fmt.Println(c.Get("redis.cache"))
// 数组方式:test2
fmt.Println(c.Get("database.default.1.name"))
}
// 设置路径
func TestConfig2(t *testing.T) {
// 设置加载文件,默认name为default
// 设置路径
g.Cfg().SetPath("configTest")
// 设置加载文件
g.Cfg().SetFileName("config1.toml")
// 打印测试
fmt.Println(g.Cfg().Get("viewpath"))
fmt.Println(g.Cfg().Get("study"))
fmt.Println(g.Cfg().Get("study1"))
fmt.Println(g.Cfg().Get("config2"))
// 新的name就是新的实例
g.Cfg("name").SetPath("configTest")
g.Cfg("name").SetFileName("config2.toml")
fmt.Println(g.Cfg("name").Get("viewpath"))
fmt.Println(g.Cfg("name").Get("study"))
fmt.Println(g.Cfg("name").Get("study1"))
fmt.Println(g.Cfg("name").Get("config2"))
}
module gf_config
go 1.14
require github.com/gogf/gf v1.11.7
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。