如果未定义其他,则定义@Default生产者

问题描述 投票:0回答:1

[当我有一个在某些环境中提供的bean生产者时,如果没有其他生产者,如何注释我的生产者以@Default的形式出现?

给出生产者方法

@Produces 
public Foo produce() 

和我无法控制的代码中的另一个生产者方法:

@Produces 
public Foo produceIt() 

都有隐式@Default注释和冲突。但是第二个功能并非在所有环境中都可用。

编辑:所以我在第一个限定符(I控件)上添加了另一个限定符@FooProducer,这使它在第二个限定符可用时可以工作-但这会删除隐式@Default,因此存在NO生产者(类型匹配,但没有找到@Default)(如果第二个不在课上,则可用)。

如果第二个生产者可用,如何注释第一个生产者为默认,如果还有另一个默认生产者,如何不冲突?

[在某些情况下,当我提供了一个提供了bean的生产者时,如果没有其他提供者,如何注释我的bean生产者以@Default的形式提供?给定生产者方法@Produces公共Foo Produce()...
java wildfly cdi
1个回答
0
投票
Weld的文档中,看起来像向生产者声明@Alternative,并使用任何@Priority全局启用它即可:
© www.soinside.com 2019 - 2024. All rights reserved.