这个问题已经在这里有一个答案:
- 支持bean(@ManagedBean)或CDI豆(@Named)? 5个回答
这可能是一个小白的问题,但是在很多的教程和例子,我看到这些注解,如果他们做同样的事情使用。
不过,我跑进使用一些限制@Named
一个(尤其是依赖注入等)我找不到其中的差别解释的来源,我会非常感激,如果有人可以提供有关何时使用一个粗略概述或其他。
这个问题已经在这里有一个答案:
这可能是一个小白的问题,但是在很多的教程和例子,我看到这些注解,如果他们做同样的事情使用。
不过,我跑进使用一些限制@Named
一个(尤其是依赖注入等)我找不到其中的差别解释的来源,我会非常感激,如果有人可以提供有关何时使用一个粗略概述或其他。
@Named
给出了一个CDI托管bean鉴于技术如JSF或JSP要使用的EL名称。 请注意,在CDI应用程序,您不需要 @Named
注释,使通过CDI管理(感谢@Karl对他的评论)的bean。
@ManagedBean
使得由JSF管理bean的,您可以:
看到这个相关的问题进行进一步的信息注入是如何工作的两个种豆子当中。
请注意,也有与豆的范围不同。 他们来自不同的包,但具有完全相同的名称(JSF: javax.faces.bean
,CDI: javax.enterprise.context
,所以它往往是错误和混乱的根源,如果你有错误的类。
从我的经验:你应该使用CDI豆只要有可能,因为它们更灵活比JSF管理的Bean。 美中不足的是,CDI不知道一个视图范围内,因此您可能需要回落到@ManagedBean或者使用一些第三方扩展喜欢缝。