假设我有这样的东西:
@Component(immediate = true)
public class A {}
public class B {
@Reference
public void injectA(A a) {...}
}
如果我手动创建B的实例,是否可以将A注入B? 如果不是,是使用服务注册表的唯一替代方法,还是有一种进入模式?
更新: 我无法手动注入A的实例(不使用服务注册表),因为创建B实例的代码没有它。
答案 0 :(得分:1)
很显然,您可以执行new B()。injectA(new A())。但是,如果要手动注入SCR创建的A实例,则需要从SCR使其可用的服务注册表中获取该A实例。