wire是什么?
golang版本的依赖注入, wire的依赖注入是在编译阶段完成. 而JAVA中的spring框架中是在运行时完成.
依赖注入(Dependency Injection)也称作控制反转(Inversion of Control)
当前对象需要的依赖对象由外部提供(通常是IoC容器),外部负责依赖对象的构造等操作,当前对象只负责调用,而不关心依赖对象的构造。即依赖对象的控制权交给了IoC容器
wire两个核心provider injector
provider: 生成组件的普通方法, 这些方法接收所需依赖作为参数, 创建组件并将其返回.
injector: 由wire自动生成的函数. 函数内部会按根据依赖顺序调用相关provider