Golang基于泛型实现的简单依赖注入(DI)
前言 众所周知,在SpringBoot中 @Autowire 依赖注入是极其方便的。 在Golang中,也可以利用 reflect 反射实现简单的依赖注入。但在泛型出现之前,这样的依赖注入在IDE提示上不够优雅,如果实例和interface的类型不对应,需要在运行时才会报错。(可以参考我之前的文章《[Golang实现简单的IoC][1]》) Golang 1.18 终于推出泛型后,我们以利用泛型的…
前言 众所周知,在SpringBoot中 @Autowire 依赖注入是极其方便的。 在Golang中,也可以利用 reflect 反射实现简单的依赖注入。但在泛型出现之前,这样的依赖注入在IDE提示上不够优雅,如果实例和interface的类型不对应,需要在运行时才会报错。(可以参考我之前的文章《[Golang实现简单的IoC][1]》) Golang 1.18 终于推出泛型后,我们以利用泛型的…
利用Golang强大的net库,可以轻松实现一个简单的TCP端口转发程序(TCP反向代理)。 package main import ( "fmt" "io" "net" ) var ( serverAddr = "127.0.0.1:80" // 目标服务器地址 proxyAddr = ":8081" // 本地代理监听地址 ) func main() { go Li…
借鉴之前公司同事的思路,简单实现一个IoC练练手。 package ioc import ( "fmt" "reflect" ) var container map[reflect.Type]map[string]reflect.Value func init() { container = map[reflect.Type]map[string]reflect.Value{} } const (…