2017-09-06 16:59:43 +08:00
|
|
|
|
Go Frame - 轻量级的Go语言开发框架。
|
2017-09-04 16:29:10 +08:00
|
|
|
|
|
2017-12-13 16:45:00 +08:00
|
|
|
|
## 安装
|
2017-11-22 16:39:21 +08:00
|
|
|
|
```
|
2017-11-23 10:29:50 +08:00
|
|
|
|
go get -u gitee.com/johng/gf
|
2017-11-22 16:39:21 +08:00
|
|
|
|
````
|
|
|
|
|
|
2017-12-13 16:45:00 +08:00
|
|
|
|
## 使用
|
2017-11-23 10:23:23 +08:00
|
|
|
|
```go
|
2017-12-18 11:07:44 +08:00
|
|
|
|
import "gitee.com/johng/gf/g/xxx/xxx"
|
2017-11-23 10:23:23 +08:00
|
|
|
|
```
|
2017-11-27 12:08:43 +08:00
|
|
|
|
|
2017-12-13 16:45:00 +08:00
|
|
|
|
## 说明
|
2017-11-27 12:08:43 +08:00
|
|
|
|
.
|
2017-12-07 09:53:35 +08:00
|
|
|
|
├── g 【框架目录】
|
2017-12-28 15:21:25 +08:00
|
|
|
|
│ ├── container 【常用数据结构】
|
2017-12-07 09:53:35 +08:00
|
|
|
|
│ │ ├── gbtree B+树
|
|
|
|
|
│ │ ├── glist 并发安全的双向链表
|
|
|
|
|
│ │ ├── gmap 并发安全的哈希表
|
|
|
|
|
│ │ └── gset 并发安全的集合
|
|
|
|
|
│ │
|
|
|
|
|
│ ├── database 【数据库操作】
|
2017-12-20 12:05:36 +08:00
|
|
|
|
│ │ └── gdb 通用关系型数据库操作封装(目前仅支持MySQL、PostgreSQL)
|
2017-12-07 09:53:35 +08:00
|
|
|
|
│ │
|
|
|
|
|
│ ├── encoding 【数据编码】
|
|
|
|
|
│ │ ├── gbase64 BASE64
|
|
|
|
|
│ │ ├── gbinary 二进制操作
|
|
|
|
|
│ │ ├── gcompress 数据压缩
|
|
|
|
|
│ │ ├── gcrc32 CRC32
|
|
|
|
|
│ │ ├── ghash 常用哈希函数
|
2017-12-29 17:07:03 +08:00
|
|
|
|
│ │ ├── ghtml HTML编码
|
2017-12-07 09:53:35 +08:00
|
|
|
|
│ │ ├── gjson JSON
|
|
|
|
|
│ │ ├── gmd5 MD5
|
|
|
|
|
│ │ ├── gsha1 SHA1
|
|
|
|
|
│ │ └── gurl URL
|
|
|
|
|
│ │
|
2017-12-20 12:05:36 +08:00
|
|
|
|
│ ├── frame 【开发框架】
|
2017-12-30 23:49:55 +08:00
|
|
|
|
│ │ ├── gcfg 通用配置管理
|
|
|
|
|
│ │ ├── gins 单例对象管理
|
2017-12-20 12:05:36 +08:00
|
|
|
|
│ │ └── gmvc MVC模式封装基类
|
|
|
|
|
│ │
|
2017-12-07 09:53:35 +08:00
|
|
|
|
│ ├── net 【网络通信】
|
|
|
|
|
│ │ ├── ghttp HTTP客户端及服务端
|
2017-12-29 17:07:03 +08:00
|
|
|
|
│ │ ├── gipv4 IPv4操作
|
|
|
|
|
│ │ ├── gipv6 IPv6操作
|
|
|
|
|
│ │ ├── grouter 路由管理
|
2017-12-07 09:53:35 +08:00
|
|
|
|
│ │ ├── gscanner 端口扫描
|
2017-12-29 17:07:03 +08:00
|
|
|
|
│ │ ├── gsession SESSION管理
|
2017-12-07 09:58:35 +08:00
|
|
|
|
│ │ ├── gsmtp SMTP邮件管理
|
2017-12-08 10:16:40 +08:00
|
|
|
|
│ │ ├── gtcp TCP服务端
|
|
|
|
|
│ │ └── gudp UDP服务端
|
2017-12-07 09:53:35 +08:00
|
|
|
|
│ │
|
|
|
|
|
│ ├── os 【系统管理】
|
2017-12-29 17:07:03 +08:00
|
|
|
|
│ │ ├── gcache 缓存管理
|
2017-12-30 23:49:55 +08:00
|
|
|
|
│ │ ├── gcmd 命令行控制
|
2017-12-29 17:07:03 +08:00
|
|
|
|
│ │ ├── genv 环境变量
|
2017-12-07 09:53:35 +08:00
|
|
|
|
│ │ ├── gfile 文件管理
|
|
|
|
|
│ │ ├── gfilepool 文件指针池
|
|
|
|
|
│ │ ├── gfilespace 文件碎片管理
|
|
|
|
|
│ │ ├── glog 日志管理
|
2017-12-07 10:42:37 +08:00
|
|
|
|
│ │ ├── gmmap MMAP文件内存映射
|
2017-12-20 12:05:36 +08:00
|
|
|
|
│ │ ├── gtime 时间管理
|
|
|
|
|
│ │ └── gview 视图管理(通用的模板管理对象,独立于MVC模块)
|
2017-12-07 09:53:35 +08:00
|
|
|
|
│ │
|
|
|
|
|
│ └── util 【常用工具】
|
|
|
|
|
│ ├── grand 随机数
|
|
|
|
|
│ ├── gregx 正则表达式
|
2017-12-29 17:01:48 +08:00
|
|
|
|
│ ├── gvalid 表单校验
|
2017-12-07 09:53:35 +08:00
|
|
|
|
│ └── gutil 其他工具
|
|
|
|
|
│
|
|
|
|
|
├── geg 【框架示例】
|
|
|
|
|
├── vendor 【第三方包】
|
2017-12-13 16:45:00 +08:00
|
|
|
|
└── version.go 【版本信息】
|
|
|
|
|
|
|
|
|
|
## 配置
|
2017-12-14 17:32:51 +08:00
|
|
|
|
1. 默认读取文件运行目录的config.json文件;
|
|
|
|
|
1. 支持多配置文件管理,默认配置文件目录为当前运行目录;
|
2017-12-20 12:05:36 +08:00
|
|
|
|
1. config.json配置文件说明:
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"viewpath" : "视图文件存放路径",
|
|
|
|
|
"database" : {
|
|
|
|
|
"数据库分组名称" : [
|
|
|
|
|
{
|
|
|
|
|
"host" : "地址",
|
|
|
|
|
"port" : "端口",
|
|
|
|
|
"user" : "账号",
|
|
|
|
|
"pass" : "密码",
|
|
|
|
|
"name" : "数据库名称",
|
|
|
|
|
"type" : "数据库类型(mysql|pgsql)",
|
|
|
|
|
"role" : "数据库角色(master|slave)",
|
|
|
|
|
"charset" : "字符编码",
|
|
|
|
|
"priority" : "数据库优先级(负载均衡处理)"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
1. config.json示例文件:
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"viewpath" : "/home/john/Workspace/Go/gitee.com/johng/gf/geg/frame/mvc/view",
|
|
|
|
|
"database" : {
|
|
|
|
|
"default" : [
|
|
|
|
|
{
|
|
|
|
|
"host" : "127.0.0.1",
|
|
|
|
|
"port" : "3306",
|
|
|
|
|
"user" : "root",
|
|
|
|
|
"pass" : "123456",
|
|
|
|
|
"name" : "test",
|
|
|
|
|
"type" : "mysql",
|
|
|
|
|
"role" : "master",
|
|
|
|
|
"charset" : "utf8",
|
|
|
|
|
"priority" : "100"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"host" : "127.0.0.1",
|
|
|
|
|
"port" : "3306",
|
|
|
|
|
"user" : "root",
|
|
|
|
|
"pass" : "123456",
|
|
|
|
|
"name" : "test",
|
|
|
|
|
"type" : "mysql",
|
|
|
|
|
"role" : "slave",
|
|
|
|
|
"charset" : "utf8",
|
|
|
|
|
"priority" : "100"
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"ucenter" : [
|
|
|
|
|
{
|
|
|
|
|
"host" : "127.0.0.1",
|
|
|
|
|
"port" : "3306",
|
|
|
|
|
"user" : "root",
|
|
|
|
|
"pass" : "123456",
|
|
|
|
|
"name" : "ucenter",
|
|
|
|
|
"type" : "mysql",
|
|
|
|
|
"role" : "master",
|
|
|
|
|
"charset" : "utf8",
|
|
|
|
|
"priority" : "100"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|