8、 自动注入实现
8.1 主要功能:
- 零配置:自动依赖解析,无需手动绑定配置,通过构造函数自动推断和创建依赖
- 零反射(除了必要的实例创建)
- 高性能,适合大型应用
- 支持异步
- 非侵入式
- 无需手动初始化,简化使用,不需要调用 initializeDI,不需要手动绑定接口和实现,第一次访问时自动初始化
- 构造函数注入,支持通过构造函数自动注入依赖,递归解析所有必要的依赖
- 保持高性能,实例仍然被缓存,只在第一次访问时创建
使用建议:
- 为接口创建默认实现类(如果有多个实现,可以使用命名约定,如 DefaultUserRepository)
- 使用构造函数注入声明依赖
- 使用 by inject() 在需要的地方注入依赖
同时保持了简单性和易用性,让依赖注入变得更加自然和直观。
这里暂不考虑缓存、锁、线程问题。
通过反射递归解析构造函数参数并创建实