EJB3概述

一、EJB技术概述

  • Java之所以受到企业级应用的青睐,很大程度上不仅是因为其在Web领域的成功,
        更多的是因为Java EE的规范中明确规定了一个清晰的软件分层,
        将业务逻辑分离于表现层,而EJB就是这样的位置。
  • 什么是EJB
        EJB是用于构建企业应用程序模块托管的、服务器端组件架构。EJB技术加速
            并简化了开发基于Java技术的分布式、事务性、安全和便携的应用程序。
  • EJB类型
        EJB的类型有两种:会话Bean(Session Bean)和
            消息驱动Bean(Message Driven Bean)。
            其中会话Bean又分为有状态的会话Bean(Stateful Session Bean)
            和无状态的会话Bean(Stateless Session Bean)。
        会话Bean:是供客户(Client)端调用的Bean,
            会话Bean通常封装了常用的业务逻辑,是最常用的Bean。
            有状态的会话Bean可以保存客户端的状态,能够跟踪客户端;
            无状态的会话Bean不能保存客户端的状态;一次会话结束,会话Bean就结束了。
        消息驱动Bean:可供客户端调用的异步方法,通常封装了发送消息相关的业务逻辑。

二、下载和安装JBoss服务器

  • 下载JBoss
        下载、解压
  • JBoss的目录结构
        JBoss解压缩后的根目录下有bin、client、docs、server和lib等文件目录。
  • MyEclipse中配置JBoss
        1、配置服务器
        2、配置JDK
        3、配置启动模式
  • 启动JBoss服务器
        选择Start选项启动JBoss

三、实例:HelloEJBService

  • 新建EJB工程
        1、选择菜单中的File | New | EJB Project命令,
            弹出New EJB Project对话框。
        2、输入项目名称,同时选择项目为Java EE 5.0,
            单击Finish按钮,这样就创建了一个EJB项目。
  • 定义EJB业务接口
        开发一个SessionBean通常要定义两个类:一个是服务接口,
            它声明为Remote或者是Local的。另一个是实现这个远程接口的Bean,
            它可以被声明成Stateful或Stateless。
        EJB的业务接口由以下两部分组成:
            普通的Java接口。
            标注调用接口的方式,本地调用@Local或者远程调用@Remote。
  • 编写SessionBean
        定义了远程的服务接口,之后需要开发无状态的会话Bean也需要两个要素:
            实现定义的业务接口。
            使用注释@Stateless,将Bean标注成为无状态的会话Bean。
  • EJB的部署
        将EJB部署到JBoss容器中的步骤如下:
        1、在项目上右击,在弹出的快捷菜单中选择MyEclipse | 
            Add and Remove Project Deployments命令。
        2、或者也可以单击工具栏中的部署按钮,也会打开部署项目的对话框。
            然后在对话框中选择Add按钮,在弹出的对话框中
            选择所要部署的JBoss服务器,单击Finish按钮。
            部署时,可以选择部署为Explored Archive解压包和Packaged Archive
                压缩包两种方式,两种方式的区别如下:
                Explored Archive:可以支持热部署,也就是说当代码改变后,
                    不用重新启动JBoss便可以运行最新的程序,这种方式适合在
                    开发阶段部署使用,建议采用这种方式。
                Packaged Archive:不支持热部署,改变代码后,需要重新启动
                    JBoss。这种方式适用于产品发版后,运行适用。
        3、部署完成EJB后,将会在JBoss的安装目录
            E:\server、jboss-5.0.0.Beta4\server\default\deploy下
            新建xxx.jar的文件夹,这个EJB Jar包便是刚才部署的EJB。
        4、启动JBoss服务器,在启动时JBoss会自动加载EJB。

四、运行EJB

  • 客户端调用EJB
        客户端调用EJB时需要注意以下几个问题:
        1、要想获得指定的EJB组件,首先要初始化context上下文对象,
            使用JBoss服务器,所以初始化Context要使用JBoss的实现。
            protected static Context getInitialContext() {
                if (context == null) {
                    Hashtable props = new Hashtable();
                    props.put(Context.INITIAL_CONTEXT_FACTORY,
                        "org.jnp.interfaces.NamingContextFactory");
                    props.put(Context.URL_PKG_PREFIXES,
                        "org.jboss.naming:org.jnp.interfaces");
                    props.put(Context.PROVIDER_URL, 
                        "jnp://localhost:1099");
                    context = new InitialContext(props);
                }
                return context;
            }
        2、EJB的服务接口需要通过Context对象的lookup方法来查找,
            其中参数的组成为:
            EJB-JAR包中EJB的获取:EJB服务名/接口类型(remote/local)。
            EAR包中EJB的获取:EAR包名/EJB服务名/接口类型(remote/local)。
                Context ctx = getInitialContext();
                Ojbect object = ctx.lookup("HelloEJBService/remote");
        3、运行客户端程序需要将JBoss的客户端类库导入到运行环境中,该类库
            位于E:\server\jboss-5.0.0.Beta4\client\jbossall-client.jar下。
  • Web应用调用EJB
        @EJB
        IHelloEJBService service;
        service.sayHelloEJB("Web Client");

五、EJB其他的相关技术规范

  • MessageBean(消息Bean):
        也叫做消息驱动Bean,是基于Java消息服务(JMS)技术的,它能够异步地
            发送消息执行业务逻辑,常用的应用比如驱动工作流程等。
  • EntityBean(实体Bean):
        是持久层的业务组件,在EJB3.0以后,被单独分离出来成为
            JPA(Java Persistence API),是一种ORM的规范。
  • 事务管理(Transaction):
        事务管理是EJB中很重要的内容,它能够保证业务逻辑的完整性。
            事务管理是对一系列操作的管理,它最终只有两个结果,
            要么成功,要么失败。一旦失败,所有的操作将回滚到初始状态。
            一旦成功,才最终提交,最终持久化。
  • EJB安全(Security):
        对于任何系统来说,安全都是需要值得考虑的问题,EJB当然也不例外。
            EJB中针对安全方面有专门的API,
            能够帮助EJB快速地建立安全的运行环境。
  • AOP在EJB中的而应用--拦截器(Interceptor):
        AOP拦截器是EJB3.0以后的功能,它能够在调用EJB之前对EJB进行拦截,
        可以方便地对访问进行控制。
  • 定时服务(Timer Service):
        定时服务是EJB中类似定时器的服务,它能够定时地触发业务逻辑,
            简化了后台需要周期性执行的业务的开发。
  • Web服务(Web Service):
        Web服务是目前各大公司倡导的业务理念,EJB也不例外。
            在EJB3.0规范中,将EJB发布成Web服务更加容易和方便。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值