jsf - JavaBean 和 ManagedBean 有什么区别

标签 jsf javabeans managed-bean

我正在阅读 What components are MVC in JSF MVC framework?

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 developer picture, the architectural V is in turn dividable as below:

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

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

但是在小写情况下,托管 bean 变成了 Controller ?

它们不是一回事吗?有什么区别?

最佳答案

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

长一个:

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

Managed 在这里意味着创建/销毁,实例的数量,它们的范围以及一些特定方法的调用都由容器处理。

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

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

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

关于jsf - JavaBean 和 ManagedBean 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16978886/

相关文章:

java - 为什么我需要在此处的 Managed Bean 中显式创建 ArrayList 的实例?

css - 识别当前选定列表项的 Facelets 策略

html - 自动整理 JSP/JSF 文件

jsf - Primefaces 5.1 中多个文件上传失败

java - 将 spring bean 加载到 servlet

java - 应该同步哪些代码块?

java - 你能在 JSF 2.0 中级联 ajax 渲染的内容吗?

java - 'component architecture' 和 'modular architecture' 之间的区别

java - bean 有什么讲究?

debugging - JSF <用户界面 :debug> not showing CDI beans