From 306f1566c1ae699e66805f5964bce998b6f84547 Mon Sep 17 00:00:00 2001 From: whuanle <1586052146@qq.com> Date: Sun, 27 Nov 2022 18:48:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=902.0.0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 261 +++++++++++++++-------------- images/image-20221127155120030.png | Bin 0 -> 33034 bytes images/image-20221127155956156.png | Bin 0 -> 20569 bytes images/image-20221127183604840.png | Bin 0 -> 3050 bytes 4 files changed, 139 insertions(+), 122 deletions(-) create mode 100644 images/image-20221127155120030.png create mode 100644 images/image-20221127155956156.png create mode 100644 images/image-20221127183604840.png diff --git a/Readme.md b/Readme.md index 8d4b115..942dcf0 100644 --- a/Readme.md +++ b/Readme.md @@ -2,21 +2,22 @@ ## goioc 介绍 -goioc 是一个基于 GO 语言编写的依赖注入框架,代码量不多,很简洁。 - -```bash -go get -u github.com/whuanle/goioc v2.0.0 -``` +goioc 是一个基于 GO 语言编写的依赖注入框架,基于反射进行编写。 +* 支持泛型; +* 简单易用的 API; +* 简易版本的对象生命周期管理,作用域内对象具有生命; +* 延迟加载,在需要的时候才会实例化对象; +* 支持结构体字段注入,多层注入; +* 对象实例化线程安全,作用域内只会被执行一次。 -线程安全,多个线程同时获取对象; -延迟加载,在需要的时候才会实例化对象; +下载依赖: -支持自定义实例化对象; - -支持结构体字段注入; +```bash +go get -u github.com/whuanle/goioc v2.0.0 +``` @@ -79,7 +80,9 @@ type IDispose interface { -除此之外,goioc 中还定义了部分扩展函数,如泛型注入等。 +除此之外,goioc 中还定义了部分扩展函数,如泛型注入等,代码量不多,简单易用。 + +![image-20221127183604840](images/image-20221127183604840.png) @@ -96,6 +99,8 @@ AddServiceOf[A,B]() AddService[B]() ``` +> A 可以是接口或结构体,只要 B 实现了 A 即可。 + 定义一个接口: @@ -106,6 +111,8 @@ type IAnimal interface { } ``` + + 实现这个接口: ```golang @@ -121,7 +128,7 @@ func (my Dog) Println(s string) { -当使用依赖注入框架时,我们可以将接口和实现分开,甚至放到两个模块中,可以随时替换实现。 +当使用依赖注入框架时,我们可以将接口和实现分开,甚至放到两个模块中,可以随时替换接口的实现。 @@ -161,7 +168,7 @@ goioc.AddServiceOf[IAnimal, Dog](sc, goioc.Scope) -注册完毕后,开始构建通过器: +注册完毕后,开始构建提供器: ```go p := sc.Build() @@ -216,17 +223,21 @@ goioc.AddServiceOf[IAnimal, Dog](sc, goioc.Scope) sc := &ServiceCollection{} goioc.AddServiceOf[IAnimal, Dog](sc, goioc.Scope) p := sc.Build() + + // 第一次获取对象 animal1 := goioc.GetI[IAnimal](p) if animal1 == nil { t.Errorf("service is nil!") } animal1.Println("test") + // 第二次获取对象 animal2 := goioc.GetI[IAnimal](p) if animal2 == nil { t.Errorf("service is nil!") } + // animal1 和 animal2 引用了同一个对象 if animal1 != animal2 { t.Errorf("animal1 != animal2") } @@ -234,17 +245,19 @@ goioc.AddServiceOf[IAnimal, Dog](sc, goioc.Scope) -实例一: +实例一,Scope 生命周期的对象,在同一个提供器下获取到的都是同一个对象。 ```go sc := &ServiceCollection{} - goioc.AddServiceHandler[Dog](sc, goioc.Singleton, func(provider goioc.IServiceProvider) interface{} { + goioc.AddServiceHandlerOf[IAnimal, Dog](sc, goioc.Scope, func(provider goioc.IServiceProvider) interface{} { return &Dog{ - Id: 2, + Id: 3, } }) p := sc.Build() + + // 第一次获取 a := goioc.GetI[IAnimal](p) if v := a.(*Dog); v == nil { @@ -255,14 +268,15 @@ goioc.AddServiceOf[IAnimal, Dog](sc, goioc.Scope) t.Errorf("Life cycle error") } v.Id = 3 - // 重复获取的必定是同一个对象 + + // 第二次获取 aa := goioc.GetI[IAnimal](p) v = aa.(*Dog) if v.Id != 3 { t.Errorf("Life cycle error") } - // 重新构建的,scope 不是同一个对象 + // 重新构建的 scope,不是同一个对象 pp := sc.Build() aaa := goioc.GetI[IAnimal](pp) v = aaa.(*Dog) @@ -273,13 +287,13 @@ goioc.AddServiceOf[IAnimal, Dog](sc, goioc.Scope) -实例二: +实例二, ServiceCollection 构建的提供器,单例模式下获取到的都是同一个对象。 ```go sc := &ServiceCollection{} - goioc.AddServiceHandlerOf[IAnimal, Dog](sc, goioc.Scope, func(provider goioc.IServiceProvider) interface{} { + goioc.AddServiceHandler[Dog](sc, goioc.Singleton, func(provider goioc.IServiceProvider) interface{} { return &Dog{ - Id: 3, + Id: 2, } }) @@ -357,14 +371,14 @@ goioc.AddService[Dog](sc, goioc.Scope) 在实例化时,如果这个对象还依赖其他服务,则可以通过 `goioc.IServiceProvider` 来获取其他依赖。 +例如下面示例中,一个依赖另一个对象,可以自定义实例化函数,从容器中取出其他依赖对象,然后构建一个新的对象。 + ```go goioc.AddServiceHandler[Dog](sc, goioc.Scope, func(provider goioc.IServiceProvider) interface{} { - other := goioc.GetI[IAnimal](provider) - if other != nil { - return other - } + a := goioc.GetI[IA](provider) return &Dog{ Id: 1, + A: a, } }) ``` @@ -433,103 +447,6 @@ func GetS[T interface{} | struct{}](provider IServiceProvider) *T - -获取接口和结构体的 reflect.Type: - -```go - -// 写法 1 - // 接口的 reflect.Type - var animal IAnimal - imy := reflect.TypeOf(&animal).Elem() - my := reflect.TypeOf(Dog{}) - -// 写法 2 - // 获取 reflect.Type - imy := reflect.TypeOf((*IAnimal)(nil)).Elem() - my := reflect.TypeOf((*Dog)(nil)).Elem() -``` - -> 以上两种写法都可以使用,目的在于获取到接口和结构体的 reflect.Type。不过第一种方式会实例化结构体,消耗了一次内存,并且要获取接口的 reflect.Type,是不能直接有用 `reflect.TypeOf(animal)` 的,需要使用 `reflect.TypeOf(&animal).Elem()` 。 - - - -然后注入服务,其生命周期为 Scoped: - -```go - // 注入服务,生命周期为 scoped - collection.AddScopedForm(imy, my) -``` - -> 当你需要 IAnimal 接口时,会自动注入 Dog 结构体给 IAnimal。 - - - -构建依赖注入服务提供器: - -```go - // 构建服务 Provider - serviceProvider := collection.Build() -``` - - - -构建完成后,即可通过 Provider 对象获取需要的实例: - -```go - // 获取对象 - // *interface{} - obj, err := serviceProvider.GetService(imy) - if err != nil { - panic(err) - } - - // 转换为接口 - a := (*obj).(IAnimal) - // a := (*obj).(*Dog) -``` - -因为使用了依赖注入,我们使用时,只需要使用接口即可,不需要知道具体的实现。 - - - -完整的代码示例: - -```go - // 获取 reflect.Type - imy := reflect.TypeOf((*IAnimal)(nil)).Elem() - my := reflect.TypeOf((*Dog)(nil)).Elem() - - // 创建容器 - var collection IServiceCollection = &ServiceCollection{} - - // 注入服务,生命周期为 scoped - collection.AddScopedForm(imy, my) - - // 构建服务 Provider - serviceProvider := collection.Build() - - // 获取对象 - // *interface{} = &Dog{} - obj, err := serviceProvider.GetService(imy) - - if err != nil { - panic(err) - } - - fmt.Println("obj 类型是", reflect.ValueOf(obj).Type()) - - // *interface{} = &Dog{},因此需要处理指针 - animal := (*obj).(IAnimal) - // a := (*obj).(*Dog) - animal.Println("测试") -``` - - - - - - ### 结构体字段依赖注入 结构体中的字段,可以自动注入和转换实例。 @@ -587,6 +504,10 @@ goioc 可以自动给你的结构体字段进行自动依赖注入。 +### Dispose 接口 + + + ## 反射形式使用 goioc @@ -659,6 +580,102 @@ goioc 的原理是反射,ioc 使用了大量的反射机制实现依赖注入 + + +获取接口和结构体的 reflect.Type: + +```go +// 写法 1 + // 接口的 reflect.Type + var animal IAnimal + imy := reflect.TypeOf(&animal).Elem() + my := reflect.TypeOf(Dog{}) + +// 写法 2 + // 获取 reflect.Type + imy := reflect.TypeOf((*IAnimal)(nil)).Elem() + my := reflect.TypeOf((*Dog)(nil)).Elem() +``` + +> 以上两种写法都可以使用,目的在于获取到接口和结构体的 reflect.Type。不过第一种方式会实例化结构体,消耗了一次内存,并且要获取接口的 reflect.Type,是不能直接有用 `reflect.TypeOf(animal)` 的,需要使用 `reflect.TypeOf(&animal).Elem()` 。 + + + +然后注入服务,其生命周期为 Scoped: + +```go + // 注入服务,生命周期为 scoped + sc.AddServiceOf(goioc.Scope, imy, my) +``` + +> 当你需要 IAnimal 接口时,会自动注入 Dog 结构体给 IAnimal。 + + + +构建依赖注入服务提供器: + +```go + // 构建服务 Provider + serviceProvider := sc.Build() +``` + + + +构建完成后,即可通过 Provider 对象获取需要的实例: + +```go + // 获取对象 + // *interface{} + obj, err := serviceProvider.GetService(imy) + if err != nil { + panic(err) + } + + // 转换为接口 + a := (*obj).(IAnimal) + // a := (*obj).(*Dog) +``` + +因为使用了依赖注入,我们使用时,只需要使用接口即可,不需要知道具体的实现。 + + + +完整的代码示例: + +```go + // 获取 reflect.Type + imy := reflect.TypeOf((*IAnimal)(nil)).Elem() + my := reflect.TypeOf((*Dog)(nil)).Elem() + + // 创建容器 + sc := &ServiceCollection{} + + // 注入服务,生命周期为 scoped + sc.AddServiceOf(goioc.Scope, imy, my) + + // 构建服务 Provider + serviceProvider := sc.Build() + + // 获取对象 + // *interface{} = &Dog{} + obj, err := serviceProvider.GetService(imy) + + if err != nil { + panic(err) + } + + fmt.Println("obj 类型是", reflect.ValueOf(obj).Type()) + + // *interface{} = &Dog{},因此需要处理指针 + animal := (*obj).(IAnimal) + // a := (*obj).(*Dog) + animal.Println("测试") +``` + + + + + ### 接口、结构体、结构体指针 在结构体注入时,可以对需要的字段进行自动实例化赋值,而字段可能有以下情况: diff --git a/images/image-20221127155120030.png b/images/image-20221127155120030.png new file mode 100644 index 0000000000000000000000000000000000000000..0b1b3b325e2566714ddd2a1ae75d9b12387fba3c GIT binary patch literal 33034 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 literal 0 HcmV?d00001 diff --git a/images/image-20221127155956156.png b/images/image-20221127155956156.png new file mode 100644 index 0000000000000000000000000000000000000000..1b336c3700f71c6ba5dd286f92e66b2e6fccb4af GIT binary patch literal 20569 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 literal 0 HcmV?d00001 diff --git a/images/image-20221127183604840.png b/images/image-20221127183604840.png new file mode 100644 index 0000000000000000000000000000000000000000..38461d021b558781b05028506af363cc13505418 GIT binary patch literal 3050 zcmV zPfQ!x9mjvqAxmIlvo;%h6GO5#(9L2Ktptg|IjoZ1Vw7Dqhl*8L^|H4vs8Vk|@1?5t zRz(=8m#vgape2W{)OHOjL3@a?9ayEYp=t4-Cbp~K1lX9^B_YY{Vf<%iJY$c?f5v9s zS2={oyx;HV`T5PfH}Au5(5rM5h!iH3+yM~DAd+<@s-?pI_a8hyd*;Nq-~W@@c=dz# zDl|(}Q&lw9?>~6_um3!$RwzVuQ$Fj-)P8(xM|{ubN;!`Cr(NM4jO7lbA(YShKmPsj zFSqYS#U;MEQclEC{=Rn} zEPB?(B%U*UBWf}EbKA-xP(7_mQEzSo* z2w~iAvryhBHQ_Mn5X!X!0LCZA#;rXFv3o^2?fOl3WEY{HkxQcxm|1xY0NQ@rgoR>S z=2&310|2Ngv1jG5iuD;Lj|OgR+IF-LR)zjZ& zqB=Fzus}w(u<|Rn_uoDJNjWJ8fUl>o=l+#A)Tr-GM()G`05DFi1rp5mg^hIP$9UKa zdb1jEGCcc@XEiBec`aZ;&?6CZtgG9PsoRg0)mi*lN60WbmYQ?ja%N_8dWdG*$6;~a z>>n=r8bc)s$bTL8b^exP@+iIm8gnX zn#~{K`#5Yp!vJ77jy^C#-Q{8cwb+72+v+%?-sY+W`N^wpbt-1Au^)cN#Yg$ z-ZuCWaNbD$>|N~}EvojTs=<@gTkS2r1l-$}9!(jKm= zFBlBAwy0DHheDzKXL~Buv12W-0ZON^XXKKj3jqL*`Dbn}(?24OdE!%nZw*oPBr)s9 zTJW8C%6QiFo*xXLx^Fe8}Pcuql)}wcSII6yMaHI_YR`<2J_M@-% zAKv}pr19el!@|k%!aC&`x8=?+%`^wyiLvp^4uo*b?{o)x$Awv%y-0zDt;P9B=h$V3 zCd2bAbX=ytH&7|<(`1r3hwuC73Y~I}4vw__KrG&q6#ALTTT^vUC2{%uTOv5A8fn=S{~GL5=A=gZ5#z^Vn}@NgV6x z0|daozDm6WE$=UiC?58LenJhfmuW!A;P})qic@O~x2BVnZOk^P7H^K~)bLpV!0LCZ zvAtV4?IW`!j`df%f{-39vK;769@*573iA2DDQy?IY!^HH@V1 zw61MLzui6cl5w?Yf!9~H{~he_u2O6)(KD=VYkvM!Qyp&FNBW+dDt>>`dNBMpoKd4Q zYBc;dOj-|A@%vQ_uAWj9?b9?=MIFYva%i8X$vROLMW_lTiez1hA}oy(MOYdos!>>) zCZcGXC{!WIz|u$$RzL*KDOa+wG#r&n(G)JWA^j#nPm_PfgkKGXB+W+hFz=yu{0>kp;{E z0Jgl9yIf#CRlTz3-zd2dg~oqFEZsmMJe|=+m&PNW>E%lnyN{`!YWx?b9>>yZ8*B3h(RY z5o>VX;{?h!X4N6Ysw>Is#mE{x~;EZ}uV zxD{l1z3@qh>d6@qiP;p|krCsOjinJ1lWBo0@xsJlFg`Ihu15%&yD1-IHkZGz<96Ga zO&hr7N}47{+O;rXi+W~Ps42T4*JZ+C8XYrnxf;H_^H4oWMyR|+btKrSFUHd-EDduG zFD;%!qdH(bjl$CGMiV<4s=^6DldAq0kNi{xj`?R+9xMDYYMn72`Lj+`e-Wxei6U87 zq6kZ)L=l!oiE0#d` z9G5a1)n6Nd#RWkEhlk0Dvt9-x)T1`3>VV)NjY{P3%Af%#HOyQAbqCUy62rpdrCb#=u3(`g& zmIieVOpe3Ox@Yd@a%Mgy2)8h6(dc{Kk?@{r5Vkgx`U}QY zBvMr&Z5oB8Arew8NE<>`G=Zv4+K{X(QG}{cqDa=2D8kYxQG}&Yq6kYb*t1Lzch{xtCnY5;5f5<>RSibsB}SG)4eO`4*Oa+2RI6n(Vtpa$W?9 zmr~xdUn%oxJp_u!z;FjVMrvK1MrkZfDmR-G7bC6AOQXv2UNnXZRVjg^ES9E3WDHZh zjEXq#T->F246;)|DtiRVY#a2P`mh+Kt#*oB#j-07*qoM6N<$f@~$*h5!Hn literal 0 HcmV?d00001