java - 在手动创建的实例中注入组件
问题描述
假设我有这样的事情:
@Component(immediate = true)
public class A {}
public class B {
@Reference
public void injectA(A a) {...}
}
如果我手动创建 B 的实例,有没有办法将 A 注入 B?如果没有,是仅使用服务注册表的唯一替代方法还是有首选模式?
更新:我无法手动注入 A 的实例(不使用服务注册表),因为创建 B 实例的代码没有它。
解决方案
显然你可以做 new B().injectA(new A())。但是,如果您想手动注入由 SCR 创建的 A 实例,则需要从服务注册表中获取该 A 实例,这是 SCR 使其可用的地方。
推荐阅读
- firebase - 仅使用电子邮件登录 Firebase(无链接,无密码)
- android - 可拖动的弹出窗口
- java - 使用 MockServer 进行测试时如何验证正确的响应数?
- debugging - 如何使用返回 REAL 的 fortran95 函数修复“return-type”和“no IMPLICIT type”错误
- amazon-web-services - 使用 CloudFront 函数将 X-Frame-Options 标头添加到所有 URL
- python-3.x - Python Netmiko 超时问题
- node.js - 使用输入值更新 mongodb 中的数据
- r - R - 根据另一个数据帧中的日期和其他值从一个数据帧中减去行
- terminal - 如何使终端中的文本(很少有不同的命令行)VSCode不模糊
- sql - 我怎么能 DRY 这个 SQL 其中 UNION ALL 两个类似的语句?