依赖注入
Dependency Injection
使用IoC容器管理服务依赖,实现模块解耦和可测试性
子问题
1.服务注册与解析
2.生命周期管理
3.作用域隔离
4.延迟初始化
5.PROXY 自动解析与手动注入覆盖的选择策略
6.容器外单例(如 DebugService)与容器内服务的协调
各项目的解法1 solutions
Signals
横向对比
| 维度 | AIRI |
|---|---|
| 容器框架 | Awilix v12 轻量级 IoC,无装饰器依赖 |
| 注入模式 | PROXY 模式自动解析 + .inject() 手动覆盖双轨 |
| 生命周期 | 全 singleton,延迟实例化(resolve 时创建) |
| 类型安全 | ContainerServices 泛型接口约束注册和解析 |
| 销毁策略 | 入口插件 beforeCleanup 逐一 resolve + destroy |
| 作用域隔离 | 单容器无 scope,每个 CognitiveEngine 实例独立容器 |
最佳实践
1.使用Awilix PROXY注入模式实现透明依赖解析
2.用 ContainerServices 泛型接口为容器提供编译期类型安全
3.对构造函数签名不兼容 PROXY 的服务使用 .inject() 显式桥接
4.利用 Awilix 延迟解析控制服务初始化时序