快速业务通道

一步一步学EJB3.0(三):悟透会话Bean(下) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15

一步一步学EJB3.0(三):悟透会话Bean(下)

时间:2011-08-05

三、无状态会话Bean实例

在上一篇文章里,其实我们已经应用到了无状态会话Bean,那好,下面我们详细的来分析下上一篇文 章里给出的示例程序。 没有阅读过的朋友请点击这里阅读:<<一步一步学EJB 3.0(二):初探企业 EJB模块开发>> .

首先我们来看看接口的定义:

1 /** 2 * 远程接口 3 * @author Beniao 4 */ 5 @Remote 6 public interface HelloRemote { 7   void sayHello(String str); 8 }

这里我们定义了一个接口,并通过@Remote将此接口标记为远程接口.下面是实现类的定义:

1/** *//** 2 * 无状态会话Bean 3 * @author Beniao 4 */ 5@Stateless(mappedName="myejb/hello") 6@Remote(HelloRemote.class) //所实现的远程接口 7public class HelloBean implements HelloRemote { 8  public void sayHello(String str) { 9    System.out.println("Hello " + str); 10  } 11}

这个实现类很简单,就是直接在参数前加上"Hello "后输出.这里我们需要注意的就是在类上面的两个 标注符:

1. @Stateless: 用于标记当前Java Bean为无会话状态Bean. 通过指定属性mappedName来生成 JNDI.

2. @Remote: 用于标记当前Java Bean所实现的远程接口

OK,上面就是一个无会话Bean的简单示例,客户端可以直接通过@Stateless中配置的mappedName来获取 实例.

1 public class Main { 2   public static void main(String[] args) throws Exception { 3    Context ctx = new InitialContext(); 4    HelloRemote hw = (HelloRemote)ctx.lookup("myejb/hello"); 5    hw.sayHello(" Beniao!"); 6   } 7 }

更详细的开发请大家查看相应的资料,我写这些文章只是一个引导而已.

一步一步学EJB3.0(三):悟透会话Bean(下)(2)

时间:2011-08-05

四、有状态会话Bean实例

我们还是从商业接口开始分析,下面是一个简单购物车的商业接口:

1 /** 2 * 购物车的商业接口 3 * @author Beniao 4 */ 5 @Remote 6 public interface ShoppingCatRemote { 7   void addItem(String item, int quantity); 8   void removeItem(String item, String quantity); 9   Map<String, Integer> getItems(); 10   void clearItems(); 11 }      业务实现类如下: 1 /** 2 * 通过@Stateful来标注该Java Bean为有会话状态Bean 3 * @author Beniao 4 */ 5 @Stateful(mappedName="ejb/ShoppingCat") 6 public class ShoppingCatBean implements ShoppingCatRemote { 7 8   private HashMap<String ,Integer> items = new HashMap<String, Integer> (); 9 10 11   public void addItem(String item, int quantity) { 12     Integer orderQuantity = items.get(item); 13     if(orderQuantity == null) { 14       orderQuantity = 0; 15     } 16     orderQuantity += quantity; 17     items.put(item, orderQuantity); 18   } 19 20   public void removeItem(String item, String quantity) { 21     System.out.println("将商品移出购物车"); 22   } 23 24   public Map<String, Integer> getItems() { 25     //..代码略 26     return null; 27   } 28 29   @Remove 30   public void clearItems() { 31     items.clear(); 32   } 33 }

从上面可以看出,我们要开发一个有会话状态Java Bean可以通过@Stateful来标注该Java Bean为有会 话状态Bean. 这与无会话状态Bean不同的是在最后一个方法上便可以看出,加上了@Remove标注.

1. @Stateful : 用于标注一个Java Bean为有状态会话Bean.

2. @Remove : 當呼叫它, 就會清除這個 Instance.

有状态会话Bean在实际开发中用得不是很多,这里就不做详细介绍, 记得前面说过,这些文章只是引导 性文章,要深入详细的学习EJB请查看相关资料和书籍.

http://beniao.blogjava.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号