Java 在什么情况下使用EJB?网站/web应用程序开发是否需要它们?

Java 在什么情况下使用EJB?网站/web应用程序开发是否需要它们?,java,jakarta-ee,ejb,ejb-3.0,Java,Jakarta Ee,Ejb,Ejb 3.0,EJB是否用于数据库支持的网站(所有人都可以访问)?EJB是框架结构() 您可以在很多情况下使用它们,将业务逻辑等关注点与数据存储等其他关注点分开。相比之下,EJB的一个引人注目的竞争对手是框架 在回答您的问题时,不,它们不是网站和web应用程序开发所必需的,尽管它们是实现这一目标的一种方法。Java中的其他web开发方法有 到目前为止,servlet是最容易编码的。它的功能有限,但对于简单的web应用程序来说,它已经足够了。当然,什么都不需要。如果需要,您可以在CGI后面构建一个web应用程序

EJB是否用于数据库支持的网站(所有人都可以访问)?

EJB是框架结构()

您可以在很多情况下使用它们,将业务逻辑等关注点与数据存储等其他关注点分开。相比之下,EJB的一个引人注目的竞争对手是框架

在回答您的问题时,不,它们不是网站和web应用程序开发所必需的,尽管它们是实现这一目标的一种方法。Java中的其他web开发方法有

到目前为止,servlet是最容易编码的。它的功能有限,但对于简单的web应用程序来说,它已经足够了。

当然,什么都不需要。如果需要,您可以在
CGI
后面构建一个web应用程序作为单个大型C函数

也就是说,EJB确实使web应用程序开发变得更加容易。Java EE 6的超轻量级
Web配置文件中包含了这些文件并非毫无意义

EJB本身不包含任何数据库API,但它与JPA集成得非常好。您可以在其中插入
EntityManager
,这样就不需要自己启动和提交/回滚事务了。这大大简化了代码

尽管您可以将与DB相关的代码(JPA或JDBC)直接放入servlet甚至JSP页面,但这是一种通常不赞成的做法。servlet和JSP用于显示,任何业务或持久性逻辑都不属于它们。一个非常实际的原因是,您不能调用JSP页面的中间部分来重用某些业务逻辑

因此,保持业务逻辑独立是优秀web应用程序的主要优点,EJB是JavaEE中的指定bean

有关更多信息,请参见以下两个类似问题的答案:

关于EJB在web应用程序体系结构中的作用:


谢谢!然而,我有一个疑问;在web应用程序中也需要数据库存储,那么对于那些需要良好可扩展性和性能的数据库支持应用程序,是否需要EJB,或者只是servlets+JSP就可以做得很好而不必担心?谢谢。数据库通信也不需要EJB,事实上很多东西都不需要EJB。数据库性能和可伸缩性主要取决于如何使用SQL而不是工具构建和查询数据库。servlet和JSP可以很好地处理这个问题,没有问题。EJB和servlet不是替代品。JavaWeb开发总是在客户端HTTP请求到达服务器时基于servlet。servlet可以使用EJB来实现声明性事务、安全性和集群@Marcos:EJB可以使应用服务器集群级别的可伸缩性比大多数替代方案更容易。当然,除非底层数据库也能承担负载,否则这不会有多大帮助。谢谢你纠正我,Michael!我只是给出了原始问题中所问的用于“Web应用程序”的技术。我并不想暗示他们是彼此的“替代品”。我很抱歉不清楚。但是业务逻辑也可以放在servlet中,对于持久性对象,可以使用JavaBean,那么在EJB中还有什么呢?。。我使用的不是关系型数据库,而是NoSQL(Cassandra数据库),因此JDBC在我的情况下不会有用,我想我必须通过servlet直接管理数据库连接(?!)看看我前面的两个答案。EJB本身不会取代持久对象的JavaBean。它们帮助您与JPA中的实体经理合作。使用它们实现DAO或使用实体管理器检索JPA实体的服务。我没有使用Cassandra,但即使这样,您仍然可以将业务逻辑放在单独的类中,而不是直接放在servlet中。EJB还具有声明式安全性、池、并发控制、异步执行和远程处理等功能,在使用Cassandra时,这些功能可能也很方便。