mirror of
https://gitee.com/johng/gf.git
synced 2024-11-30 03:07:45 +08:00
g.DB/g.Config改进单例缓存键名
This commit is contained in:
parent
5204193c58
commit
caffdb143e
@ -12,7 +12,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
gDEFAULT_CONFIG_GROUP_NAME = "default" // 默认配置名称
|
||||
DEFAULT_GROUP_NAME = "default" // 默认配置名称
|
||||
)
|
||||
|
||||
// 数据库配置包内对象
|
||||
@ -79,7 +79,7 @@ var DatabaseConfiguration = Config {
|
||||
// 包初始化
|
||||
func init() {
|
||||
config.c = make(Config)
|
||||
config.d = gDEFAULT_CONFIG_GROUP_NAME
|
||||
config.d = DEFAULT_GROUP_NAME
|
||||
}
|
||||
|
||||
// 设置当前应用的数据库配置信息,进行全局数据库配置覆盖操作
|
||||
@ -105,12 +105,12 @@ func AddConfigNode (group string, node ConfigNode) {
|
||||
|
||||
// 添加默认链接的一台数据库服务器配置
|
||||
func AddDefaultConfigNode (node ConfigNode) {
|
||||
AddConfigNode(gDEFAULT_CONFIG_GROUP_NAME, node)
|
||||
AddConfigNode(DEFAULT_GROUP_NAME, node)
|
||||
}
|
||||
|
||||
// 添加默认链接的数据库服务器集群配置
|
||||
func AddDefaultConfigGroup (nodes ConfigGroup) {
|
||||
AddConfigGroup(gDEFAULT_CONFIG_GROUP_NAME, nodes)
|
||||
AddConfigGroup(DEFAULT_GROUP_NAME, nodes)
|
||||
}
|
||||
|
||||
// 设置默认链接的数据库链接配置项(默认是 default)
|
||||
|
@ -83,28 +83,38 @@ func View() *gview.View {
|
||||
|
||||
// 核心对象:Config
|
||||
// 配置文件目录查找依次为:启动参数cfgpath、当前程序运行目录
|
||||
func Config() *gcfg.Config {
|
||||
return instances.GetOrSetFuncLock(gFRAME_CORE_COMPONENT_NAME_CONFIG, func() interface{} {
|
||||
path := gcmd.Option.Get("gf.cfgpath")
|
||||
if path == "" {
|
||||
path = genv.Get("gf.cfgpath")
|
||||
func Config(file...string) *gcfg.Config {
|
||||
configFile := gcfg.DEFAULT_CONFIG_FILE
|
||||
if len(file) > 0 {
|
||||
configFile = file[0]
|
||||
}
|
||||
return instances.GetOrSetFuncLock(fmt.Sprintf("%s.%s", gFRAME_CORE_COMPONENT_NAME_CONFIG, configFile),
|
||||
func() interface{} {
|
||||
path := gcmd.Option.Get("gf.cfgpath")
|
||||
if path == "" {
|
||||
path = gfile.SelfDir()
|
||||
path = genv.Get("gf.cfgpath")
|
||||
if path == "" {
|
||||
path = gfile.SelfDir()
|
||||
}
|
||||
}
|
||||
}
|
||||
config := gcfg.New(path)
|
||||
// 添加基于源码的搜索目录检索地址,常用于开发环境调试,只添加入口文件目录
|
||||
if p := gfile.MainPkgPath(); gfile.Exists(p) {
|
||||
config.AddPath(p)
|
||||
}
|
||||
return config
|
||||
config := gcfg.New(path, configFile)
|
||||
// 添加基于源码的搜索目录检索地址,常用于开发环境调试,只添加入口文件目录
|
||||
if p := gfile.MainPkgPath(); gfile.Exists(p) {
|
||||
config.AddPath(p)
|
||||
}
|
||||
return config
|
||||
}).(*gcfg.Config)
|
||||
}
|
||||
|
||||
// 数据库操作对象,使用了连接池
|
||||
func Database(name...string) *gdb.Db {
|
||||
config := Config()
|
||||
db := instances.GetOrSetFuncLock(gFRAME_CORE_COMPONENT_NAME_DATABASE, func() interface{} {
|
||||
group := gdb.DEFAULT_GROUP_NAME
|
||||
if len(name) > 0 {
|
||||
group = name[0]
|
||||
}
|
||||
key := fmt.Sprintf("%s.%s", gFRAME_CORE_COMPONENT_NAME_DATABASE, group)
|
||||
db := instances.GetOrSetFuncLock(key, func() interface{} {
|
||||
m := config.GetMap("database")
|
||||
if m == nil {
|
||||
panic(fmt.Sprintf(`incomplete configuration for database: "database" node not found in config file "%s"`, config.GetFilePath()))
|
||||
@ -158,7 +168,7 @@ func Database(name...string) *gdb.Db {
|
||||
}
|
||||
// 使用gfsnotify进行文件监控,当配置文件有任何变化时,清空数据库配置缓存
|
||||
gfsnotify.Add(config.GetFilePath(), func(event *gfsnotify.Event) {
|
||||
instances.Remove(gFRAME_CORE_COMPONENT_NAME_DATABASE)
|
||||
instances.Remove(key)
|
||||
})
|
||||
if db, err := gdb.New(name...); err == nil {
|
||||
return db
|
||||
|
@ -41,8 +41,8 @@ func View() *gview.View {
|
||||
|
||||
// Config配置管理对象
|
||||
// 配置文件目录查找依次为:启动参数cfgpath、当前程序运行目录
|
||||
func Config() *gcfg.Config {
|
||||
return gins.Config()
|
||||
func Config(file...string) *gcfg.Config {
|
||||
return gins.Config(file...)
|
||||
}
|
||||
|
||||
// 数据库操作对象,使用了连接池
|
||||
|
@ -19,7 +19,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
gDEFAULT_CONFIG_FILE = "config.toml" // 默认的配置管理文件名称
|
||||
DEFAULT_CONFIG_FILE = "config.toml" // 默认的配置管理文件名称
|
||||
)
|
||||
|
||||
// 配置管理对象
|
||||
@ -32,7 +32,7 @@ type Config struct {
|
||||
|
||||
// 生成一个配置管理对象
|
||||
func New(path string, file...string) *Config {
|
||||
name := gDEFAULT_CONFIG_FILE
|
||||
name := DEFAULT_CONFIG_FILE
|
||||
if len(file) > 0 {
|
||||
name = file[0]
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user