我从头到尾实现了一个Golang的依赖注入框架,并且集成了gin、xorm、redis、cron、消息中间件等功能;自己觉得还挺好用的,推荐给你!也欢迎一起维护!
github地址:https://github.com/gone-io/gone
文档地址:https://goner.fun/
如果可能,请帮忙在github上点个 ⭐️ ;万分感谢!!
1.安装gone辅助工具
go install github.com/gone-io/gone/tools/gone@latest
安装可以使用gone命令:
gone -h
支持的功能:
- create,创建一个gone app,暂时只支持创建web app
- priest,为项目自动生成 Priest 函数,了解更多
- 生成用于测试的mock代码
2.创建一个web项目并运行代码
# 创将一个名为 web-app 的项目
gone create web-app
cd web-app
make run
项目结构

- cmd/server/main.go: 启动文件,main函数所在文件
- config/: 项目配置文件目录,支持
.properties文件 - internal/router/: 在该目录定义路由器
- internal/middleware/: 中间件目录,如果需要定义web中间件,在该目录编写
- internal/controller/: controller目录,在该目录中的文件定义路由
- internal/interface/service/: 该目录放服务的接口定义
- internal/domain/: 该目录放领域对象
- internal/entity/: 该目录放一些无逻辑的结构体,类似于Java 的POJO
- internal/module/: 模块目录,下面的每一个子目录实现一个模块的功能,一般是internal/interface/service/中定义的服务的业务实现;
- internal/pkg/: 在该目录可以放一些项目共用的工具代码
- internal/master.go: 存放MasterPriest函数
- internal/priest.go: gone priest 命令生成的 Priest函数,用于埋葬所有Goner
3.Router
在目录internal/router中分别实现了两个gin.IRouter:
- pubRouter,公开的路由,挂载在该路由下的接口,请求将无需授权即可访问。
- authRouter,鉴权的路由,挂载在该路由下的接口,请求必须先要经过授权。
我们来分析internal/router/pub_router.go的代码:
package router
import (
"web-app/internal/middleware"
"github.com/gone-io/gone"
"github.com/gone-io/gone/goner/gin"
)
const IdRouterPub = "router-pub"
//go:gone
func NewPubRouter() (gone.Goner, gone.GonerId) {
return &pubRouter{
}, IdRouterPub
}
type pubRouter struct {


最低0.47元/天 解锁文章
1958

被折叠的 条评论
为什么被折叠?



