【发布时间】:2013-03-03 02:49:20
【问题描述】:
我刚刚开始阅读Core JavaServer Faces, 3rd Ed.,他们这样说(强调我的):
有两个独立的机制,CDI bean 是历史性的偶然 和 JSF 托管 bean,用于可在 JSF 页面中使用的 bean。 我们建议 除非您的应用程序必须在普通 servlet 上运行,否则您使用 CDI bean 像Tomcat这样的运行器。
为什么?他们没有提供任何理由。我一直在为在 GlassFish 3 上运行的原型应用程序中的所有 bean 使用 @ManagedBean,但我并没有真正注意到任何问题。我并不特别介意从 @ManagedBean 迁移到 @Named,但我想知道我为什么要打扰。
【问题讨论】:
-
@Bozho:这个问题非常相似,但是在阅读了 Pascal 的回答几次之后,我仍然不明白 为什么 CDI 远优于。 我不知道 CDI,我很高兴学习它,因为它“更好”。为什么更好?
-
“除非你的应用程序必须在普通的 servlet 运行程序上运行,例如 Tomcat”我只使用 tomcat,我强烈推荐 CDI。 Tomcat 支持就好了
-
@KarlKildén “plain servlet runner”指的是不支持 CDI 的 servlet 容器。在撰写本文时,Tomcat 不支持 CDI,除非使用了相当多的魔法。
标签: jsf jakarta-ee jsf-2 cdi