【发布时间】:2020-04-28 17:47:31
【问题描述】:
在 Spring DI 中,将自动装配字段声明为 Optional 可以使客户端不向其注入任何值。这可能使用 Java EE 的 CDI 吗?我尝试了可选,但失败了。我想知道是否有我可以使用的等效机制。
这是我尝试过的:
public class OmeletteMaker implements EggMaker{
public static void main(String[] args){
WeldContainer container = new Weld().initialize();
OmeletteMaker omeletteMaker = container.instance().select(OmeletteMaker.class).get();
}
@Inject
Optional<Vegetable> vegetable;
}
我收到一条错误消息: 线程“main” org.jboss.weld.exceptions.DeploymentException 中的异常:WELD-001408 在注入点 [[BackedAnnotatedField] @Inject cafeteria.OmeletteMaker.vegetable] 带有限定符 [@Default] 的类型 [Optional] 的不满足依赖关系]
【问题讨论】:
-
根据我的搜索, optional 应该可以工作(从未使用过)。但就像How to Ask 状态一样,发布您在minimal reproducible example 风格中尝试过的内容并发布您的搜索结果以及为什么它们没有帮助(发布“行为”、“不起作用”不是行为。还发布版本和实施信息
-
谢谢,我添加了我尝试过的描述。
-
无法快速找到链接,但据我记得应该是
Instance<Vegetable>