采用Java 持久化框架:选择、时机和优缺点? - 编程入门网
么不用已经可用的?”可能是在你的架构决策制定过程中首先要问的问题。我把这看作是相对其他框架的一个“政治”优势,因为它已经可用了。
何时考虑将 EJB 的备选方案作为持久化框架 持久层的功能要求可能是提示您需求备选方案的第一个因素。如果您的应用程序不需要 EJB 框架提供的每个功能,则这表示您应该寻求一个备选方案。 资源可用性超过了性能要求可能是另一个您想要寻求其他备选方案的情况。尽管 EJB 框架提供了完美的性能和可伸缩性,但是 EJB 框架的对资源的消耗也是非常惊人的。底线问题是:我们真的需要这个吗? 在很多情况下,写得很好的数据访问对象或 Hibernate 框架就可提供完美的备选方案。 尽管很少,但数据源(而不是关系数据库)可能阻止您使用容器管理的持久化框架。 如果您已经使用或计划使用 EJB 作为您的持久化框架,这里是一些您可以预期的优势和缺点。 采用Java 持久化框架:选择、时机和优缺点?(2)时间:2011-07-22Entity EJB 有什么优势? 该基于组件的分布式模型使其独立于网络 - EJB 组件可以部署到为其他应用程序提供服务的同一 JVM 上,或者位于不同地理位置的应用程序服务器的 JVM 上。 您将获得完美的可伸缩性:EJB 可以很好地向上扩展,因为容器可以汇聚实例,必要时可以进行激活和钝化。 EJB 经过长时间的检验,已成为成熟的技术。而且,它经过发展,还可以提供更多有用的服务和功能。例如,计时器服务就是我最喜欢的服务之一;使用它,您可以计划作业按指定的间隔执行(比如每晚、每周或每月)。在 EJB 3.0 中还有一项有用的功能“Java 语言元数据注释支持”,该功能消除了实体持久化所需的所有接口以及在 EJB 的查询语言中的增强。 Entity EJB 有什么缺点? 学习和使用 EJB 架构是不简单的。您应该准备学习一些术语,比如 remote interface(远程接口)、home interface(Home 接口), activation(激活)、passivation(钝化) 等等,其中大部分仅适用于 EJB 世界。 EJB 架构不提供持久化独立。由于这些类在 EJB 容器中以其自己的方式使用,因此没有在其他框架中使用 EJB 类的简便方法。 对于 Entity Bean,要想获得可接受的性能水平一直是一个挑战,尤其是在远程接口模式中。 Java Persistence API 从 EJB 技术可以开始应用时起,对其在实际应用中的可用性就一直存在怀疑。在我看来,产生这种现象最重要的两个原因是复杂性和资源密集性。结果,随后出现了比 EJB 更简单、具有更小资源空间的框架(比如 Spring 和 Hibernate),并且更快流行开来。为了说明这一点,我们注意到 EJB 3.0 规范的方向相对以前出现了一个主要的转变。作为 JSR 220 的一部分,该规范提供了类似 Plain Old Java Object (POJO) 支持、Dependency Injection(依赖注入)和注释等功能。现在引入了一组全新的 API:Java Persistence API (JPA),以允许开发者管理 Java EE(甚至 SE)应用程序中的关系数据。另外,Sun 声称 Java Persistence API 表现了一些 Hibernate、TopLink(二者都会在稍后讨论)、JDO 以及 EJB 框架中最好的想法。 当前,GlassFish 项目提供了实施 JPA 的一个参考,JPA 在 GlassFish 应用程序服务器中作为 TopLink Essential 部分。您可以在 GlassFish 社区页 找到该 JPA 参考实施。不要混淆 TopLink Essentials 和 TopLink,前者现在是由 Oracle Corporation 拥有的关系映射工具。稍后我将在本文中讨论 TopLink 框架。 让我们来讨论一些您应该考虑应用 JPA 作为持久化框架的应用场景。 何时考虑将 JPA 作为持久化框架 您选择从流行的框架(比如 Hibernate、TopLink 和 EJB)中选择应用具有“好用”的功能且基于标准的框架。 您需要轻量级 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |