注册本站  论坛  繁體中文

电脑技巧
手机 | MP3 | MP4 | 显卡 | 主板 | 显示器 | 光存储 | 笔记本 | 网络设备 | 移动存储 | 数码相机
键鼠 | CPU | 音箱 | GPS | 电视 | 服务器 | 投影机 | 机箱电源 | 品牌电脑 | 办公打印 |
| 网站首页 | Cisco | Windows | Linux | Java | Dotnet | Oracle | 网页设计 | 平面设计 | 安全 | 软件应用 | 电脑维修 | 办公维修 |
您现在的位置: 电脑技巧 >> Java >> J2EE >> EJB >> Java正文

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

文章来源:blogjava.net 作者:佚名 更新时间:2008-8-23 14:38:45 【 】 【加入收藏
三、无状态会话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 }

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

四、有状态会话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请查看相关资料和书籍.
  • 上一篇Java:

  • 下一篇Java:
  • 最 新 热 门
     Flash、HTML、Ajax 谁将赢得Web应用之战
     超越XML和JSON:YAML,Java开发人员的新选择
     优秀Java程序员必须了解的GC工作原理
     Java 6 RowSet 使用完全剖析
     pureQuery带注释的方法风格简介
     面向Java开发人员的Scala指南: 实现继承
     Java 6中的性能优化
     Java实现Windows的dir命令
     Java标准类库提供的容器总结
     在Tomcat上开发Web应用如何保证兼容性
    最 新 推 荐
     一步一步学EJB3.0(四):实体Bean开发
     一步一步学EJB3.0(三):悟透会话Bean(下)
     一步一步学EJB 3.0(三):悟透会话Bean(上)
     用jbuilder7+jboss3+vss开发EJB
     一步一步学EJB 3.0(二):初探企业EJB模块开发
     EJB 3.0学习笔记一:开发环境搭建
     使用Quartz实现任务调度和调度管理
     关于EJB3的一个简单例子
     EJB3.0中查询boolean值的方法
     EJB3应用程序的开发方法
    相 关 文 章

    一步一步学EJB3.0(四):实体Bean开发
    一步一步学EJB 3.0(三):悟透会话Bean(上)
    一步一步学EJB 3.0(二):初探企业EJB模块开发
    DudoJ框架——更进一步的设想
    基础教程之——RMI一步一步学习
    一步一步用JBuilder5开发EJB(下)
    一步一步用JBuilder5开发EJB(上)

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告

     

    Copyright 2006-2008 pcjx.com All Rights Reserved
    电脑技巧 版权所有 粤ICP备06059145号 地图
    本网站所有内容未经许可不得转载或做其他使用