GoFrame系统骨架
Author:凡尘
Email: admin@ifapi.cn
QQ: 180002898
目录结构
├── app 业务逻辑层 所有的业务逻辑存放目录。
│ ├── dao 数据访问 数据库的访问操作,仅包含最基础的数据库CURD方法。
│ ├── model 结构模型 数据相关的实体结构定义,以及一些系统间通用的数据结构定义。
│ ├── shared 通用逻辑 多系统间可复用的、通用的service功能逻辑。
│ └── service 业务逻辑 内部可能包含多个子系统,不同子系统之间资源相互隔离。
├── boot 初始化包 用于项目初始化参数设置,往往作为main.go中第一个被import的包。
├── config 配置管理 所有的配置文件存放目录。
├── document 项目文档 Documentation项目文档,如: 设计文档、帮助文档等等。
├── library 公共库包 公共的功能封装包,往往不包含业务需求实现。
├── packed 打包目录 将资源文件打包的Go文件存放在这里,boot包初始化时会自动调用。
├── public 静态目录 仅有该目录下的文件才能对外提供静态服务访问。
├── router 路由注册 用于路由统一的注册管理。
├── template 模板文件 模板文件存放的目录。仅当需要使用模板引擎的场景下有用。
├── go.mod 依赖管理 使用Go Module包管理的依赖描述文件。
└── main.go 入口文件 程序入口文件。
GO
交叉编译
| OS |
ARCH |
OS version |
| linux |
386 / amd64 / arm |
>= Linux 2.6 |
| darwin |
386 / amd64 |
OS X (Snow Leopard + Lion) |
| freebsd |
386 / amd64 |
>= FreeBSD 7 |
| windows |
386 / amd64 |
>= Windows 2000 |
// cmd
set CGO_ENABLED=0
set GOOS=linux
set GOARCH=amd64
go build main.go
GO Modules
常用命令
go mod init [POJECT NAME] // 初始化
go mod tidy // 检测依赖,测该文件夹目录下所有引入的依赖,写入 go.mod 文件
go mod download // 下载依赖,会将mod里面使用到的依赖下载至本地
go mod vendor // 导入依赖,会将刚才下载至 GOPATH 下的依赖转移至该项目根目录下的 vendor
Proxy配置
https://mirrors.aliyun.com/goproxy/ // 阿里云
https://goproxy.cn // 七牛云
gf 工具链常用命令
run 热编译(自动编译)
gf run [FILE]
# [FILE] mian.go文件
# run命令会递归监控当前运行目录的所有go文件变化来实现自动编译
部署方式
宝塔部署方式(推荐)
反向代理配置文件
location /
{
# 127.0.0.1:8299 = 项目运行IP:端口
proxy_pass http://127.0.0.1:8299/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
add_header X-Cache $upstream_cache_status;
#Set Nginx Cache
add_header Cache-Control no-cache;
expires 12h;
}