| 注入方式 | 构造器注入(推荐)、方法注入、属性注入 |
|---|---|
| 生命周期 | 单例、作用域、瞬态,错误组合会引发状态串扰或性能问题 |
| 组合根 | 应用启动处集中装配依赖 |
构造器注入示例
构造器注入示例
class OrderService {
private final OrderRepository repo;
OrderService(OrderRepository repo) { // 组合根装配
this.repo = repo;
}
}
// 测试:new OrderService(new InMemoryRepo())依赖注入不等于必须使用容器:小型项目在组合根手工装配更直观可控。