【发布时间】:2013-08-21 01:09:47
【问题描述】:
我正在将应用程序迁移到 Java EE 7 并希望迁移到 CDI 1.1。但我不明白bean-discovery-mode="annotated" 的含义。这
CDI 1.1 specification 不是很有帮助。至少我还没有找到任何有用的段落。我错过了吗?
这个例子与bean-discovery-mode="all"完美运行并注入LoggingClass的一个实例:
public class LoggingClass {
public Logger logger = Logger.getLogger("ALOGGER");
}
@Test
public class MMLoggerProducerIT extends Arquillian {
@Inject private LoggingClass lc;
}
但是,如果我从 bean-discovery-mode="all" 更改为 bean-discovery-mode="annotated",则容器无法将实例注入字段 lc。
如何注释LoggingClass 才能正确使用bean-discovery-mode="annotated"?
【问题讨论】:
-
我只是猜测,但我认为 '@Named' 或 ''@ManagedBean' 会是候选人?
-
@Mike_Braun Named 只会在 EL 上下文中公开一个 bean,但不会给它一个范围。 ManagedBean 是一个 JSF 注解,CDI 引擎会忽略它。
标签: dependency-injection cdi java-ee-7