将EJB Bean放在单独的JAR中的一个重要动机就是将业务逻辑和视图逻辑分离开来。
由于EJB应该只专注于业务逻辑,所以将它们放在一个单独的模块中是有意义的。
这正是传统的Java Enterprise Archive所推动的。 EJB bean进入表示EJB模块的JAR文件,而Web相关工件(Facelets,后备bean,实用程序代码)进入表示Web模块的Web存档(WAR)文件。请注意,WAR实际上不一定是一个文件。在所谓的爆炸格式中,它们只是目录。
这种分离的一个关键方面是这两个模块通过类加载器层次结构被隔离。 Web模块可以访问来自EJB模块的资源(通常是bean),EJB模块可以引用在整个EAR伞中定义的资源(通常为库)。另一个方向是不可能的。具体来说,EJB模块无法访问Web模块中定义的任何资源。
这种执法是故意的。
业务逻辑应完全独立于任何视图技术。实施这种隔离可以防止开发人员意外或在压力下混合这些问题。这种分离的好处是业务逻辑可以被其他Java SE客户端,Web模块客户端,JAX-RS客户端等使用。如果业务逻辑意外地具有JSF或Servlet依赖关系,则很难使用它来自Java SE客户端。
与Facelets进行比较,不允许使用scriptlet。这样可以保持Facelets清洁,并让它们专注于组件布局和标记。另一个类比是编码到接口,它将合同与实现分开。
所以有一个单独的EJB模块实际上是一个最佳实践。然而…
对于较小的项目,可能没有必要进行这种分离,对于开始的程序员来说,可能难以围绕需要去哪里的结构进行包围。删除强制性分隔使得无经验的开发人员更容易从Java EE开始。它给了他们一个温和的介绍到Java EE,一旦他们得到分层的想法,他们可以选择引入一个EJB模块。
本文发布于:2024-01-31 15:06:17,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170668478229387.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |