gpt4 book ai didi

java - OSGI:DS 和组件工厂问题

转载 作者:行者123 更新时间:2023-11-30 08:49:37 27 4
gpt4 key购买 nike

我需要的是每次当某些消费者需要此服务时 + 使用 CDI 时获取新的服务实例。我已经阅读了很多文章,但找不到 2 个问题的答案。

  1. 如果我们使用工厂,为什么在服务消费者中我们调用工厂 ( http://www.rpgnextgen.com/wiki/doku.php?id=component_factory ) 然后我们获得对服务的引用。我是说

    // get factory
    ComponentFactory factory = (ComponentFactory) context.getService(serviceReferences[0]);
    // get instance
    ComponentInstance instance = factory.newInstance(null);

有没有办法设置工厂有一定的接口(interface),在osgi里面调用工厂的时候服务消费者调用服务?

  1. 如果在服务消费者中我们调用工厂那么为什么我们将服务标记为组件而事实上的工厂是组件?

问题是,如果没有工厂,我会执行 @Inject @OsgiService (javase) 或@OSGiService (javaee) 并且我可以使用不同的过滤器并且代码非常清晰。使用组件工厂我(据我所知)失去了这种能力。

最佳答案

ComponentFactory 是为那些想要使用工厂的消费者而存在的,因为他们想要控制各个组件的生命周期。例如,如果他们想为每个 Web 请求创建一个组件实例。

如果您不想使用 ComponentFactory... 那么就不要。

关于java - OSGI:DS 和组件工厂问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31354996/

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