问题域/PD-456

依赖注入

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 延迟解析控制服务初始化时序