当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

EJB的最佳实践:产业强度的JNDI优化[Java编程]

赞助商链接



  本文“EJB的最佳实践:产业强度的JNDI优化[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

在这篇本领文章中,我们将研究一些最常用的 JNDI 优化.分外地,我们将向您展示若何将高速缓存和通用助手类组合利用,以成立针对 JNDI 开销的工厂气势的办理筹划.

削减上下文实例

清单 1 显示了一段典型的 EJB 代码,它需求多次 JNDI 查找.请花一点时间研究代码,然后我们将对它举行优化以得到更佳性能.

清单 1. 典型的 EJB 查找

public boolean buyItems(PaymentInfo paymentInfo, String storeName,
List items) {
// Load up the initial context
Context ctx = new InitialContext();
// Look up a bean´s home interface
Object obj = ctx.lookup("java:comp/env/ejb/PurchaseHome");
PurchaseHome purchaseHome =
(PurchaseHome)PortableRemoteObject.narrow(obj, PurchaseHome.class);
Purchase purchase = purchaseHome.create(paymentInfo);
// Work on the bean
for (Iterator i = items.iterator(); i.hasNext(); ) {
purchase.addItem((Item)i.next());
}
// Look up another bean
Object obj = ctx.lookup("java:comp/env/ejb/InventoryHome");
InventoryHome inventoryHome =
(InventoryHome)PortableRemoteObject.narrow(obj, InventoryHome.class);
Inventory inventory = inventoryHome.findByStoreName(storeName);
// Work on the bean
for (Iterator i = items.iterator(); i.hasNext(); )
inventory.markAsSold((Item)i.next());
}
// Do some other stuff
}

固然这个示例多少有点决心,但它确切揭露了利用 JNDI 时的一些最明显的问题.关于初学者,您应当问问自己,新建 InitialContext 对象能否必须.极大概在利用程序代码的别的地方已经装入了这个上下文,而我们又在这里成立了一个新的.高速缓存 InitialContext 实例会当即促使性能提高,如清单 2 所示:

清单 2. 高速缓存 InitialContext 实例

public static Context getInitialContext() {
if (initialContext == null) {
initialContext = new InitialContext();
}
return initialContext;
}

通过对 getInitialContext() 利用助手类,而不是为每个操作都实例化一个新的 InitialContext,我们将遍及在利用程序中的上下文数目削减为一个.

线程化会怎么样?

假如您对此处提出的办理筹划的线程化感到耽忧,那大可没必要.两个线程同时举行 getInitialContext() 是绝对有大概的(从而一次成立两个上下文),但只有初次调用该办法时才会发生此类错误.因为问题至多只会发生一次,所以同步是不必要的,实际上,同步引入的复杂性比它所办理的复杂性更多.


  以上是“EJB的最佳实践:产业强度的JNDI优化[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • EJB的困惑:组件与可重用性的冲突
  • 具体解析JavaBeans与Ejb的辨别
  • 关于EJB的长期化对象技术解析
  • EJB的入门教材
  • JBoss中EJB的开辟
  • EJB的最佳实践:产业强度的JNDI优化
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .