【发布时间】:2021-06-04 18:33:21
【问题描述】:
有人可以解释 CDI 范围注释在生产者方面的作用吗?他们似乎什么也没做。
@Produces
public Thing thingMaker() {
System.out.println("Making thingmaker");
return new ThingBean("thingMaker");
}
@Produces
@RequestScoped
public Thing thingMakerReq() {
System.out.println("Making thingmakerReq");
return new ThingBean("thingMakerReq");
}
这些自然会在启动时给出这个(省略的)错误。
WELD-001409:Thing 类型的依赖关系不明确。 可能的 依赖:
- 生产者方法 [Thing] 带有限定符 [@Any @Default] 声明为 [[BackedAnnotatedMethod] @Produces public pkg.test.ThingProducer.thingMaker()],
- 带有限定符 [@Any @Default] 的生产者方法 [Thing] 声明为 [[BackedAnnotatedMethod] @Produces @RequestScoped public pkg.test.ThingProducer.thingMakerReq()]
因此,即使 `RequestScoped 被标记为生产者方法的一部分,它们也不是限定符。
所以我只是不确定他们在生产者方法方面的作用。
【问题讨论】: