gpt4 book ai didi

java - OSGI - 在新对象中注入(inject) bean

转载 作者:行者123 更新时间:2023-12-01 09:53:10 24 4
gpt4 key购买 nike

我可能没有完全掌握 Bean 和服务的概念,但我所有的研究都没有结果。

在我的 OSGI 项目中,我得到了一个提供服务的包 A(称为 myService)。

捆绑B在一个bean(称为myBean)中使用此服务,该bean也作为服务公开。

Bean 和服务声明在蓝图中完成。

目前,Bundle A 和 B 都已被 Karaf 解析,接线也正常。

但是我的包 B 有另一个 bean(称为 myOtherBean),也作为服务公开,可以动态创建新对象。这些对象(称为 MyObject)必须具有对 bean myBean 的引用。

我如何传递引用?

一个简单的方法是将引用放入我的 bean myOtherBean 中,并通过 MyObject 的构造函数注入(inject)它。但我想知道是否还有其他方法可以做到这一点。有些人建议在 MyObject 中使用 @Inject 注释,但我无法使其工作。

最佳答案

我认为在构造函数中传递服务是实现此目的的好方法。使用工厂是可能的,但如果您想在代码中创建对象,则很难使用蓝图工厂。您可以通过注入(inject)蓝图上下文并手动从中检索对象来完成此操作,但这非常难看。

关于java - OSGI - 在新对象中注入(inject) bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37467588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com