在什么情况下使用EJB? 它们是否需要在网站/网络应用程序开发中?
EJBS是否用于数据库支持的网站(所有人都可以访问)?
当然, 不需要任何东西。 如果你想要你可以构建一个Web应用程序作为CGI
背后的单个大型C函数。
也就是说,EJB确实使Web应用程序开发变得更加容易。 它们包含在Java EE 6的超轻量级Web Profile
中并非毫无意义。
EJB本身不包含任何数据库API,但它与JPA集成得非常好。 您可以在其中注入EntityManager
,并且必须自己启动和提交/回滚事务的要求消失。 这大大简化了您的代码。
虽然您可以将DB相关代码(JPA或JDBC)直接放入Servlet甚至JSP页面,但这种做法通常不赞成。 Servlet和JSP用于显示,任何业务或持久性逻辑都不属于那里。 一个非常实际的原因是你不能调用JSP页面的中间来重用一些业务逻辑。
因此,保持业务逻辑分离是优秀Web应用程序的主要优点,而EJB是Java EE中指定的bean。
有关其他信息,请参阅以下两个类似问题的答案:
- 通过JPA Vs访问数据库表。 Web应用程序中的EJB
- EJB 3或Hibernate 3
有关EJB在Web应用程序体系结构中的作用:
- 用于分层可重用架构的框架
EJB是框架结构( 有关高级解释,请参见此处 )。
您可以在很多情况下使用它们,将业务逻辑等问题与数据存储等其他问题分开。 EJB的一个备受瞩目的竞争对手(相比之下)是Spring框架。
在回答您的问题时,不,它们不是网站和Web应用程序开发所必需的,尽管它们是一种方法。 Java中的其他Web开发方法是Servlets , JSP 。
到目前为止,Servlet是最简单的代码。 它的function有限,但对于简单的网络应用程序来说,它是充足的。