gone是可以高效开发Web服务的Golang依赖注入框架
github地址:https://github.com/gone-io/gone
文档地址:https://goner.fun/zh/
文章目录
优化和新特性
gone 核心功能增强
-
重构了函数参数依赖注入
在Cemetery上提供了InjectFuncParameters
方法,用于完成函数参数的依赖注入。该方法的定义如下:
InjectFuncParameters( fn any, injectBefore func(pt reflect.Type, i int) any, injectAfter func(pt reflect.Type, i int), ) (args []reflect.Value, err error)
- 入参说明:
- fn,需要被注入的函数;函数允许拥有多个入参,入数可以是Gone框架中注册的接口或者结构体指针,也可以为被
gone
标记了属性的结构体,一般使用匿名结构体; - injectBefore,hook函数,在对第i个参数构造前调用,如果
injectBefore(x, i)
返回值非nil,InjectFuncParameters将不再构造fn函数的第i
- fn,需要被注入的函数;函数允许拥有多个入参,入数可以是Gone框架中注册的接口或者结构体指针,也可以为被
- 入参说明: