我正在阅读JSF MVC框架中的MVC组件是什么?
从大的架构角度看,你自己的JSF代码是V:
M - 业务领域/服务层(例如EJB/JPA/DAO)
V - 你的JSF代码
C - FacesServlet从开发人员角度看,架构中的V可以进一步分为以下几个部分:
M - 实体
V - Facelets/JSP页面
C - 管理的Bean
在上面的情况下,JavaBean是一个模型。
但在下面的情况下,托管的Bean变成了控制器?
它们不是同一种东西吗?有什么区别?
我正在阅读JSF MVC框架中的MVC组件是什么?
从大的架构角度看,你自己的JSF代码是V:
M - 业务领域/服务层(例如EJB/JPA/DAO)
V - 你的JSF代码
C - FacesServlet从开发人员角度看,架构中的V可以进一步分为以下几个部分:
M - 实体
V - Facelets/JSP页面
C - 管理的Bean
在上面的情况下,JavaBean是一个模型。
但在下面的情况下,托管的Bean变成了控制器?
它们不是同一种东西吗?有什么区别?
简短回答:'Managed Bean' 是 JSF 管理的 Java Bean 的一个遗留的缩写。
详细说明:
Bean 通常是由容器管理的 POJO (普通的 Java 对象)。
在这里,"被管理" 意味着容器处理创建/销毁、实例数量、它们的作用域以及某些特定方法的调用。
容器通常由底层服务器提供。 在 Java EE 中,您有不同的容器(CDI、EJB、Web 等)。
JSF 管理的 Bean 是由 JSF 容器管理的 Bean。 EJB 由 EJB 容器管理,Servlet / 过滤器由 Servlet 容器管理,JPA 实体由 EntityManager 管理,等等。
例如,在 Tomcat 服务器上,您只有 Web (servlet) 容器,而没有 EJB 容器。 如果使用 JSF (必须提供关联的依赖项),您也将拥有受管理的 Beans。