10

我正在阅读JSF MVC 框架中的 MVC 是哪些组件?

在大架构图中,您自己的 JSF 代码是V

M - 业务域/服务层(例如 EJB/JPA/DAO)
V - 你的 JSF 代码
C - FacesServlet

在开发者图片中,架构V依次可划分如下:

M - 实体
V - Facelets/JSP 页面
C - 托管 bean

在大写的情况下,JavaBean 是一个模型。

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

它们不是同一件事?有什么区别?

4

1 回答 1

13

简短回答:“托管 Bean”是 JSF 托管 bean 的传统简称。它是由 JSF 管理的 Java Bean。

长一

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

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

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

JSF Managed Bean是由JSF容器管理的bean,EJB由EJB容器管理,Servlet/过滤器由servlet容器管理,JPA实体由EntityManager管理,等等。

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

于 2013-06-07T08:05:30.333 回答