我们为什么要使用EJB?

mri*_*ka3 35 java ejb-3.0

什么是EJB,为什么我们应该使用它?请用简单的语言解释.谢谢.

Ern*_*oso 26

EJB或Enterprise Java Bean是简单的java clases(自3.0版本起),带有注释,可以编写应用程序的bussines逻辑,然后在Java Enterprise Edition Server上部署(或安装).

如果希望利用Java Enterprise Edition(Java EE)服务器提供的以下服务,则必须考虑使用EJB:

  • 集群.您可以在集群环境(依赖于Java EE Application Server)上部署EJB,这为您提供了Fault Tolerance和High Availability.
  • 没有使用Threads的并发.所有ejb都通过一个对象池进行实例化,然后您的应用程序在性能上获得并且没有Thread复杂性.
  • 通过JTA实现交易.所有ejb都可以从不同资源的事务管理中受益,最重要的数据库,使用注释很容易划分每个事务的前沿并管理它们.
  • 连接池到数据库.所有ejb都可以访问定义到Java EE Application Server中的连接池,这个连接池提供了数据库复杂性的抽象,例如,您可以使用XA数据源来实现对不同数据库的Two Faces Commit.
  • 安全.所有ejb都可以使用JAAS来保护应用程序.JAAS已配置到Java EE Application Server中,您可以通过配置(例如使用Active Directory,LDAP或数据库)通过不同的提供程序对EJB的方法进行身份验证和授权.
  • 安排服务.所有ejb都可以使用Timer Service,使您可以执行任务以进行进一步执行或包含重复执行.

还有其他服务和好处,但我认为这些是最重要的.如果您不需要这些好处,我的建议是您不使用EJB(并非所有应用程序都是企业应用程序).

  • >`所有ejb都可以使用JAAS来保护应用程序` - 这是不正确的.EJB不使用JAAS.安全bean(通过例如`@ RolesAllowed`)要求容器验证用户/调用者,但规范没有描述应该通过哪种机制进行此过程.容器实现可以将其代码基于JAAS,也可以完全使用其他东西.有关更多详细信息,请参阅以下内容:http://arjan-tijms.blogspot.com/2014/02/jaas-in-java-ee-is-not-universal.html和http://raymondkng.sys-con.com /节点/ 171477 (3认同)

Arj*_*jms 15

EJB bean专门用于实现应用程序的业务逻辑.因此他们提供实现这样的逻辑,如交易时,实体管理器的注入,常常需要服务(用于JPA,Java持久性API)和豆类池.

有关更详细的答案和更多参考资料,请参阅此内容:EJB的用途

用尽最基本的措辞; "EJB bean使通过JPA使用数据库变得更加容易".

在EJB外部使用JPA需要大量冗长且容易出错的代码来获取实体管理器,启动事务并提交或将其回滚.

使用EJB还有很多其他原因,但从经验来看,我认为这是首要原因.


Nir*_*ond 8

Enterprise JavaBeans体系结构或简称EJB是一种用于开发和部署基于组件的健壮,高度可伸缩的业务应用程序的体系结构.这些应用程序具有可扩展性,事务性和多用户安全性.您可以开发一次应用程序,然后在任何一个符合Java EE 5的应用程序服务器上进行部署.有许多应用程序服务器可用,包括免费和商业服务器.您可以选择用于开发和部署的服务器以满足您的要求和预算.

EJB的好处

EJB简化了小型和大型企业应用程序的开发.EJB容器为企业bean提供系统级服务,bean开发人员可以专注于开发逻辑来解决业务问题.

请参阅维基,了解更多细节


pla*_*nes -2

事务、远程性等。也许可以买一本好的 EJB 书籍并阅读,或者进行一些谷歌搜索。从这里开始Java EE6 EJB。它可能会回答您所有最初的疑问。