我觉得Java EE 6规范中有一点混乱。有几组注释。
我们有像@Stateful和@Stateless这样的用于创建EJB的javax.ejb注释。
还有一个用于创建托管bean的@javax.annotation.ManagedBean。
在javax.enterprise.context中有像@SessionScoped和@RequestScoped这样的注释。
此外,javax.faces.bean包中还包含@ManagedBean和@SessionScoped/@RequestScoped注释。
为了使事件更加复杂,有一个带有@Named注释的javax.inject包。
有人能描述一下它们是如何相互联系的吗?
在哪里可以使用@EJB、@Inject或@ManagedPropery注入其他bean?
发布于 2014-06-17 19:19:12
由于没有专门针对@javax.annotation.ManagedBean的回复,这里有一个指向类似问题的链接:Backing beans (@ManagedBean) or CDI Beans (@Named)?。该规范可以在http://download.oracle.com/otndocs/jcp/managed_beans-1.0-fr-eval-oth-JSpec/上找到。所以在我看来,@javax.annotation.ManagedBean应该是@javax.faces.bean.ManagedBean的泛化。
据我所知,JSF托管Beans正在逐步淘汰,取而代之的是CDI (可能从JSF2.3中被弃用?),所以我猜@javax.annotation.ManagedBean现在正变得更加过时。
https://stackoverflow.com/questions/11986847
复制相似问题