注入方式
- 注解注入 @Autowired @Resource
- private final ...
使用场景:由于 private final字段是不可变的,一旦注入后就无法修改。这种不可变性有助于确保字段的安全性和线程安全性
使用要求:构造函数中接收依赖参数
public class A {
private final BService bService;
public A(BService bService) {
this.bService = bService;
}
}
- 注解构造@RequiredArgsConstructor
注:@RequiredArgsConstructor自动生成构造函数,入参为声明final的属性和标记@NonNull的属性
@RequiredArgsConstructor
public class A {
private final BService bService;
}
注入内容
- 单实例
- List
- Map
public class A {
@Autowired
private XService xService;
@Autowired
private List<YService> yService;
@Autowired
private Map<MethodClassKey, DataPermission> dataPermissionCache;
}