【发布时间】:2011-10-14 14:14:32
【问题描述】:
我有这种情况,我有三个提供相同接口的声明性服务(比如说一个阅读器接口,我有 readerimpl1-database-readerimpl2-flat file-readerimpl3-memory)。我想要一个只绑定到数据库实现的消费者。在组件定义中,我们给它一个名字,所以我很确定这个名字在注册表中,所以如果我要添加一个激活方法,我可以使用这个名字从组件上下文中查找。
我想通过绑定/取消绑定来尝试它,尽管使用服务名称作为参数。我很确定可以使用组件引用元素中的“目标”参数来执行此操作,但我还没有找到如何使用它。
其他人做过吗?
这类似于使用 @Reference(mapped-name="foo")
【问题讨论】:
-
这是一个非常有趣的问题。这让我想到了你是否更喜欢数据库impl但会接受另一个的相关问题。在这种情况下,您可以通过 @Reference(cardinality=ReferenceCardinality.OPTIONAL_MULTIPLE,policy=ReferencePolicy.DYNAMIC) 实现,然后在添加/删除方法中筛选列表。