如果不需要数据库,使用EJB3还是有好处

问题描述:

没有使用EJB3,但通过阅读教程,EJB3看起来主要是通过JPA处理数据库中的数据(当然,它包含其他业务逻辑)。只是好奇,如果没有数据库需求,使用EJB3还是有益的,或者它只是增加了应用程序的复杂性? POJO会是更好的实施选择吗?如果不需要数据库,使用EJB3还是有好处

EJB好处的很大一部分来自事务和持久性。

但即使没有它们,您也可能从EJB中受益。它可以为您提供经过验证的集群和平衡模型。它可以给你声明式的安全。它可以为您提供MDB,这是一种方便的方式来侦听JMS队列/主题和定时器。

以上所有可以使用第三方库,如Spring。 EJB虽然高度一致,但要获得例如集群和安全性,您可能需要合并两个产品,但不能保证它们能够很好地协作并且不需要太多粘合剂。

+0

我正在看GlassfishV3,它实现了JEE6堆栈,它应该将东西粘合在一起。 – sarahTheButterFly 2011-05-04 01:02:46

+0

我不同意关于集群和安全的部分。 Spring可以与JAAS集成,并且Tomcat可以提供集群。 Spring应用程序通常部署在Java EE应用程序服务器上,因此它们为EJB提供的所有服务也会归入Spring POJO。 – duffymo 2011-05-04 01:39:28

+0

@duffymo您认为EJB提供安全/集群的方式是什么?显然,Spring/Tomcat是替代品,但这并不会使EJB功能集无效。 – 2011-05-04 05:38:54

EJB是部署在管理生命周期,线程和其他服务的应用程序服务器上的事务性分布式组件。持久性只是一种类型的EJB。即使您不想使用实体bean,您仍然可能会发现无状态,有状态或消息EJB有用。

就是说,你可以创建有状态的,无状态的,持久的或消息驱动的POJO组件。您不需要EJB;像Spring这样的东西可以是一个很好的选择。