English | 中文
Gone 是一个轻量级的golang依赖注入框架,并且适配了一些列第三方组件用于快速开始编写一个云原生的微服务。
- 依赖注入,支持对结构体属性和函数参数自动注入
- Gonectr,生成项目、生成辅助代码、编译和启动项目
- 单元测试方案,基于接口的mock测试
- 多种组件,可插拔,支持云原生、微服务
- 安装 gonectr 和 mockgen
go install github.com/gone-io/gonectr@latest go install go.uber.org/mock/mockgen@latest
- 创建一个项目
gonectr create myproject
- 运行项目
或者,使用make命令运行,如果你已经安装make:
cd myproject gonectr run ./cmd/server
或者使用docker compose来运行:cd myproject make run
cd myproject docker compose build docker compose up
📚完整文档
- 定义 gone.Provider,一个工厂函数用于将 不是 Goner 的外部组件(结构体、结构体指针、函数、接口)注入到 属性需要注入的Goner;
- 修复
gone.NewProviderPriest
无法为 生成接口类型的gone.Provider生成Priest; - 为
goner/gorm
编写测试代码,补齐其他测试代码;文档更新。
- 提供一种新的
gone.GonerOption
,可以将按类型注入,将构造注入类型实例的任务代理给一个实现了Suck(conf string, v reflect.Value, field reflect.StructField) error
的Goner; - 提供了一个用于实现Goner Provider的辅助函数:
func NewProviderPriest[T any, P any](fn func(tagConf string, param P) (T, error)) Priest
; - 给
goner/xorm
集群模式提供策略配置的方案; - 完善
goner/gorm
代码 和 做功能测试,支持多种数据库的接入。
- goner/xorm 支持集群 和 多数据库,最新文档:https://goner.fun/zh/references/xorm.html
- 新增 goner/gorm,封装
gorm.io/gorm
,用于数据库的访问,暂时只支持mysql,完善中...
如果您发现了错误或有功能请求,可以随时提交问题,同时欢迎提交拉取请求。
如果您有任何问题,欢迎通过以下方式联系我们:
gone
在 MIT 许可证下发布,详情请参阅 LICENSE 文件。