为什么不应该通过JSF框架管理实体bean?

时间:2014-08-21 16:28:12

标签: jsf managed-bean entity-bean

我读了一些帖子听到(特别是BalusC帖子)和googled的原因(不深)但我找不到为什么不应该使用实体bean作为托管bean。什么原因? (我正在学习“Pro JSF和HTML5”,在本书中,实体bean被用作托管bean。)

1 个答案:

答案 0 :(得分:3)

关注点分离。

通常,企业应用程序是作为EAR而不是WAR开发和部署的。典型的EAR项目由一个EJB子项目组成,"后端"和一个WAR子项目作为"前端"。 EJB子项目包含所有JPA实体和EJB服务。 WAR子项目包含所有JSF托管bean和视图(以及与JSF没有密切关系的内容,如转换器,验证器,阶段监听器等)。

一个好的EJB子项目可能不会对JSF有任何依赖性。这使得它可以重用于不同的前端,例如Spring MVC,JAX-RS,Struts2,普通的JSP / Servlet,甚至是面向桌面的Swing应用程序。这也意味着您的JPA实体和EJB服务的没有人应该在类中具有任何javax.faces.*导入/依赖性。举例来说,JPA实体或EJB服务中的FacesContext正处于警示状态,因为它并不一定存在于其他前端。

" Pro JSF和HTML5"专注于简单的WAR项目。在那里"好的"为了展示可能性和/或保持示例简单",但是一旦他们成长为开发企业应用程序,这对于初学者来说实际上是误导的,如果这本书没有这样做的话就越多。详细介绍了设计问题。

另见:

相关问题