golang web框架设计5:配置设计
2024-09-03 03:28:16
golang web framework 框架系列文章:
- 7. golang web框架设计7:整合框架
- 6. golang web框架设计6:上下文设计
- 5. golang web框架设计5:配置设计
- 4. golang web框架设计4:日志设计
- 3. golang web框架设计3:controller设计
- 2. golang web框架设计2:自定义路由
- 1. golang web框架设计1:框架规划
配置信息的解析,实现的是一个key=value,键值对的一个配置文件,类似于ini的配置格式,然后解析这个文件,把解析的数据保存到map中,最后调用的时候通过几个string,int之类的函数返回相应的值
首先定义ini配置文件的一些全局性常量:
var (
bComment = []byte{'#'}
bEmpty = []byte{}
bEqual = []byte{'='}
bDQuote = []byte{'"'}
)
配置文件的格式:
type Config struct {
filename string
comment map[int][]string
data map[string]string
offset map[string]int64
sync.RWMutex
}
定义解析文件的函数:
解析文件过程是打开文件,然后一行一行读取,解析注释,空行和k=v的数据
func LoadConfig(name string) (*Config, error)
下面实现一些读取配置文件的函数,返回的值确定为bool,int,int64或string:
func (c *Config) Bool(key string) (bool, error) {
return strconv.ParseBool(c.data[key])
}
func (c *Config) Int(key string) (int, error) {
return strconv.Atoi(c.data[key])
}
func (c *Config) Float(key string) (float64, error) {
return strconv.ParseFloat(c.data[key], 64)
}
func (c *Config) String(key string) string {
return c.data[key]
}
完整代码:
最新文章
- RSA密钥生成与使用
- java即时通信小例子
- 以16进制打印出一块内存buff
- 通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
- jira 无法停止启动解决方案
- 自己写的一个banner动画
- require js 将config和入口函数分开写
- Mac神器Iterm2的Shell Integration的用法和注意事项
- golang之pkg(包)
- HTML4和HTML5之间10主要差异
- MVC5中使用SignalR2.0实现实时聊天室
- [DP]一道理想收入问题【转】
- Android Studio中Git的配置及协同开发
- win 10 精简组件列表
- MYSQL数据库常用操作命令
- matlab中randn(‘state’)
- python语法_终止循环_break_continue
- [Struts2]配置文件
- EscapeDataString URI 字符串太长
- C语言--第八周作业评分(5班)
热门文章
- temp数据预处理--以24h为周期的序列
- jQuery获取父窗口的元素
- Windows10关闭自动更新总结
- 2019HDU多校第四场 K-th Closest Distance ——主席树&;&;二分
- [2019HDU多校第五场][HDU 6626][C. geometric problem]
- 解决selenium和FireFox版本不兼容问题
- 15、Spring Boot 2.x 集成 Swagger UI
- Educational Codeforces Round 40 (Rated for Div. 2) 954G G. Castle Defense
- Python 12---图形界面
- Codeforces Round #426 (Div. 2) B题【差分数组搞一搞】