JavaBean和ManagedBean之间有什么区别

时间:2013-06-07 07:48:09

标签: java jsp javabeans managed-bean

我正在阅读Stackoverflow中的一篇旧帖子,内容:

In the big architectural picture, your own JSF code is the V:

M - Business domain/Service layer (e.g. EJB/JPA/DAO)
V - Your JSF code
C - FacesServlet

In the smaller developer picture, the architectural V is in turn dividable as follows:

M - Entity
V - JSP/XHTML page
C - Managed bean

So it's basically a M(MVC)C.

在大写字母中,JavaBean是一个模型,

但是在小写的情况下,Managed bean会变成一个控制器吗?

它们不是同一个> ??差异是什么?

1 个答案:

答案 0 :(得分:10)

简短回答:'Managed Bean'是JSF托管bean的遗留短名称。它是由JSF管理的Java Bean。

长一点

bean通常是由容器管理的POJO(普通旧java对象)。

Managed在这里意味着容器处理创建/销毁,实例数量,范围和某些特定方法的调用。

容器通常由底层服务器提供。在Java EE中,您有不同的容器(CDI,EJB,Web等)

JSF Managed Bean由JSF容器管理,EJB由EJB容器管理,Servlet容器由Servlet容器管理,JPA实体由EntityManager管理等。

例如,在tomcat服务器上,您只有web(servlet)容器而不是EJB容器。如果您使用JSF(您必须提供相关的依赖关系),您也将拥有托管bean。