Gone v2 版本正式发布


在这里插入图片描述

logo

Gone 是基于Golang标签的依赖注入框架

Gone 是一个轻量级的golang依赖注入框架,下面是一个简单的例子(嵌入了gone.Flag的结构体,我们称之为Goner):

package main

import "github.com/gone-io/gone/v2"

type Dep struct {
	gone.Flag
	Name string
}

type Component struct {
	gone.Flag
	dep *Dep        `gone:"*"` //依赖注入
	log gone.Logger `gone:"*"`
}

func (c *Component) Init() {
	c.log.Infof(c.dep.Name) //使用依赖
}

func main() {
	gone.
		NewApp().
		// 组件注册加载
		Load(&Dep{Name: "Component Dep"}).
		Load(&Component{}).
		//运行
		Run()
}

特性

  • 支持结构体属性的注入
  • 支持函数参数的注入
  • 支持代码生成,自动完成组件注册加载(通过Gonectr完成)
  • 支持基于接口mock的单元测试
  • Provider机制,支持将外部组件注入到Goner中
  • 支持微服务开发的相关Goner组件
  • 支持给Goner定义初始化方法Init()BeforeInit()
  • 支持编写服务类型的Goner:实现 Start() errorStop() error,框架会自动调用Start()和Stop()方法。
  • 支持BeforeStartAfterStartBeforeStopAfterStop等钩子函数,用于在服务启动和停止时执行自定义操作。

架构

在这里插入图片描述

生命周期

在这里插入图片描述

快速开始

  1. 安装 gonectrmockgen
    go install github.com/gone-io/gonectr@latest
    go install go.uber.org/mock/mockgen@latest
    
  2. 创建一个项目
    gonectr create myproject
    
  3. 运行项目
    cd myproject
    go mod tidy
    gonectr run ./cmd/server
    

更新记录

v2.0.0

v2版本做了大量更新,去掉不必要的概念,使用前请参考:Gone@v2 使用说明

v1.2.1

  • 定义 gone.Provider,一个工厂函数用于将 不是 Goner 的外部组件(结构体、结构体指针、函数、接口)注入到 属性需要注入的Goner;
  • 修复 gone.NewProviderPriest 无法为 生成接口类型的gone.Provider生成Priest;
  • goner/gorm编写测试代码,补齐其他测试代码;文档更新。

v1.2.0

  • 提供一种新的 gone.GonerOption,可以将按类型注入,将构造注入类型实例的任务代理给一个实现了
    Suck(conf string, v reflect.Value, field reflect.StructField) errorGoner
  • 提供了一个用于实现Goner Provider的辅助函数:
    func NewProviderPriest[T any, P any](fn func(tagConf string, param P) (T, error)) Priest
  • goner/xorm 集群模式提供策略配置的方案;
  • 完善goner/gorm代码 和 做功能测试,支持多种数据库的接入。

v1.1.1

  • goner/xorm 支持集群 和 多数据库,最新文档:https://goner.fun/zh/references/xorm.html
  • 新增 goner/gorm,封装gorm.io/gorm,用于数据库的访问,暂时只支持mysql,完善中…

贡献

如果您发现了错误或有功能请求,可以随时提交问题
,同时欢迎提交拉取请求

联系方式

如果您有任何问题,欢迎通过以下方式联系我们:

许可证

gone 在 MIT 许可证下发布,详情请参阅 LICENSE 文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dapeng-大鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值