use*_*784 24 dependency-injection el jsf-2 tomcat7
这可能是一个noob问题,但是在很多教程和示例中,我看到这些注释被用作好像它们做同样的事情.
然而,我遇到一些限制使用@Named一个(特别是依赖注入等)我找不到解释差异的来源,如果有人可以粗略概述何时使用一个或者其他.
Mat*_*ndy 41
@Named为CDI托管bean提供了一个EL名称,用于JSF或JSP等视图技术.请注意,在CDI应用程序,您没有需要的@Named注释,使通过CDI管理(感谢@Karl对他的评论)的bean.
@ManagedBean 使得bean由JSF管理,你可以:
有关两种豆类之间注射的详细信息,请参阅此相关问题.
请注意,bean的范围也存在差异.它们来自不同的包,但命名相同(JSF:javax.faces.bean,CDI:,javax.enterprise.context因此如果包含错误的类,它通常是错误和混淆的来源.
根据我的经验:你应该尽可能使用CDI bean,因为它们比JSF托管bean更灵活.唯一的缺点是CDI不知道视图范围,因此您需要回退到@ManagedBean或使用像Seam这样的第三方扩展.
| 归档时间: |
|
| 查看次数: |
38226 次 |
| 最近记录: |