`
wangyihust
  • 浏览: 436758 次
文章分类
社区版块
存档分类
最新评论

EJB,J2EE的核心,如何看待?

阅读更多

  EJB容器提供下列服务:远程访问(stub/skeleton),安全性, 事务, 并发性, 生命周期管理等.祝贺Kingdee  Apusic产品通过J2EE 1.4认证! 佩服!

  session facade模式:  会话bean(remote接口) + 实体bean(local接口).其实,对CMP而言,EJB2.1标准其资源浪费也不是太大,对于频繁的ejbLoad和ejbStore可以考虑使用值对象,它避免了对每个字段set/get方法的调用. 当然也可以使用轻量级的架构,如hibernate.

  JBuilder还是商业java开发首选,集成的EJB开发也十分强大. Eclipse+ lomboz同样方便, jboss IDE也不错.

EJB的组成:
1) 企业级bean类
      public interface javax.ejb.EnterpriseBean extends java.io.serializable {}
根据bean类注释,可以使用Xdoclet + ant自动生成代码,如Home,EjbObject, xml等文件
/**
 * @ejb.bean name="Users"
 * jndi-name="UsersBean"
 * type="CMP"
 *  primkey-field="id"
  *  schema="UsersSchema"
 *  cmp-version="2.x"
 *  view-type="remote"
 *
 *  @ejb.persistence
 *   table-name="Users"
 *
 * @ejb.finder
 *    query="SELECT OBJECT(a) FROM UsersSchema as a" 
 *    signature="java.util.Collection findAll()" 
 * 
 **/
public abstract class UsersBean implements EntityBean {}
2) 远程对象接口EjbObject或本地对象接口EjbLocalObject
3)远程Home接口或本地Home接口
   Home接口定义了生成,查找和回收EjbObject的方法.
对本地接口: MyLocalHome lh=(MyLocalHome )ctx.lookup("java:comp/env/ejb/MyEJB");
             MyLocalObject obj=lh.create();
对远程接口:MyHome mh=(MyHome )javax.rmi.PortableRemoteObject.narrow(
                               ctx.lookup("java:comp/env/ejb/MyEJB"), MyHome.class);
            MyObject obj=mh.createUsers();

Home接口中create方法返回远程或本地对象接口,可以有多个create方法,但方法名必须是create开头;
对应的bean实现中方法名变为ejbCreate, 其返回类型对状态会话bean来说是void, 对实体bean来说是主键类型.

EJB的分类:
1. 无状态bean
    消息驱动bean和无状态会话bean, 不需要保存客户状态.通常用来建立业务过程模型.这些bean是轻量级的,具有高度的可伸缩性. 可以在容器中初始化一定数量共享bean,供多个客户使用.
    消息驱动bean只是一个消息消费者, 没有定义Home接口和EjbObject接口.消息的生产者可以是JMS方式或其他.
2. 状态bean
 1)有状态会话bean : 一个会话只能被一个客户使用;容器在主存中维护事务间的对象状态,钝化时写入辅村; 容器故障后,不可还原
 2)实体bean: 一个实体对象可以被多个客户共享;用数据库或其他资源管理器维护; 可还原.
通常一个业务实体实现为实体bean.

例:对一个购物车程序,若购物过程要跨越很长的时间和多个web会话, 则将购物车实现为实体bean;
若购物过程只限于一个单独的web会话,则实现为一个状态会话bean.可以将会话状态的维护委托给HttpSession对象.
myobject  obj=myhome.create(id);
session.setAttribute("myobjBean", obj);

EJB 的激活与钝化:
1. 无状态会话bean,由实例池调度
2. 有状态会话bean, 主要是ejbPassive和ejbActive
3. 实体bean,ejbStore->ejbPassive----ejbActive->ejbLoad

Stateless Session Bean 的生命周期是由容器决定的,当客户机发出请求要建立一个Bean的实例时,EJB容器不一定要创建一个新的Bean的实例供客户机调用,而是随便找一个现有的实例提供给客户机。当客户机第一次调用一个Stateful Session Bean 时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后此客户机调用Stateful Session Bean 的方法时容器会把调用分派到与此客户机相关联的Bean实例。

Entity Beans能存活相对较长的时间,并且状态是持续的。只要数据库中的数据存在,Entity beans就一直存活。而不是按照应用程序或者服务进程来说的。即使EJB容器崩溃了,Entity beans也是存活的。Entity Beans生命周期能够被容器或者 Beans自己管理。


EJB通过以下技术管理实务:对象管理组织(OMG)的对象实务服务(OTS),Sun Microsystems的Transaction Service(JTS)、Java Transaction API(JTA),开发组(X/Open)的XA接口。

数据连接池的工作机制:

J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。



分享到:
评论

相关推荐

    j2ee ejb编程实例.rar_J2EE_ejb_j2ee ejb_j2ee 实例_编程实例

    EJB是J2EE的核心组件之一,主要用于实现业务逻辑,提供分布式、安全、可移植的服务器端组件模型。 EJB分为三种主要类型:Stateful Session Beans(有状态会话bean)、Stateless Session Beans(无状态会话bean)和...

    J2EE 核心模式,J2EE教程

    **J2EE核心模式**是Java企业版(Java 2 Platform, Enterprise Edition)开发中的重要指导原则和最佳实践。这个概念旨在提供一套可复用的架构模式,帮助开发者在J2EE平台上构建高效、可扩展且易于维护的分布式应用...

    J2EE核心模式

    ### J2EE核心模式知识点详解 #### 一、J2EE概述 J2EE(Java 2 Platform, Enterprise Edition)是Sun Microsystems公司推出的一种企业级应用开发平台标准,旨在简化大型分布式系统的开发工作。J2EE的核心优势在于其...

    J2EE 应用规范(内含EJB3持久化规范,EJB3核心规范,JAVAEE+5.0以及JMS1_1规范)

    在给定的压缩包文件中,我们可以找到几个关键的规范文档,包括EJB3持久化规范、EJB3核心规范、JAVAEE 5.0规范以及JMS 1.1规范。这些规范是J2EE开发中不可或缺的基础。 1. **EJB3持久化规范**:全称为Enterprise ...

    J2EE核心模式pdf

    **J2EE核心模式**是Java企业版(Java 2 Platform, Enterprise Edition)开发中的重要指导原则和最佳实践。这本书深入探讨了如何有效地利用J2EE技术构建可扩展、健壮且可维护的企业级应用程序。以下是对J2EE核心模式...

    J2EE核心模式第二版

    《J2EE核心模式第二版》是一本专为Java企业级开发人员编写的经典著作,旨在深入探讨J2EE(Java 2 Platform, Enterprise Edition)平台上的设计模式和技术实践。这本书详细介绍了如何在大型分布式系统中有效地应用...

    J2EE核心模式电子版

    《J2EE核心模式》是一本深受欢迎的书籍,它为Java企业级应用开发提供了坚实的理论基础和技术指导。这本书详细探讨了在J2EE(Java 2 Platform, Enterprise Edition)平台上构建可扩展、灵活且可维护的软件系统的关键...

    J2EE.rar_ejb_ejb j2ee_java进销系统_进销存_进销存系统

    **EJB(Enterprise JavaBeans)**是J2EE的核心组件之一,它为服务器端的业务逻辑提供了封装。EJB组件包括三种主要类型:会话Bean(Session Beans),实体Bean(Entity Beans)和消息驱动Bean(Message-Driven Beans...

    J2EE核心模式(第二版中英文双语版).zip

    本书讲解使用J2EE核心技术实现企业应用过程中的模式、最佳实践、设计策略以及经过验证的解决方案,涵盖了JSP、servlet、EJB、JMS等技术,其中J2EE模式目录包括21个模式以及大量策略,帮助读者迅速熟练掌握J2EE技术,...

    j2ee ejb.rar_J2EE_ejb_j2ee e

    EJB(Enterprise JavaBeans)是J2EE的核心组成部分,它是服务器端的组件模型,用于构建可复用的业务逻辑。 EJB技术主要包含三种类型的组件: 1. **会话Bean(Session Beans)**:代表客户端的一次会话,用于处理...

    j2ee without ejb 中文 part2

    j2ee without ejb 中文 part2j2ee without ejb 中文 part2j2ee without ejb 中文 part2j2ee without ejb 中文 part2j2ee without ejb 中文 part2j2ee without ejb 中文 part2j2ee without ejb 中文 part2j2ee ...

    j2ee 核心模式.rar

    《J2EE核心模式》是Java企业级应用开发的重要参考资料,它深入剖析了J2EE平台上的设计模式和最佳实践。这些模式可以帮助开发者构建可扩展、健壮且易于维护的分布式应用程序。以下是对《J2EE核心模式》一书及其中关键...

    J2EE core design patterns j2ee 核心设计模式 chm

    《J2EE Core Design Patterns》是一本专注于Java企业级应用开发中的核心设计模式的重要书籍。设计模式是软件工程中经过实践验证的、解决特定问题的模板,尤其在复杂如J2EE(Java 2 Platform, Enterprise Edition)...

    J2EE,EJB,J2EE,EJB,

    EJB(Enterprise JavaBeans)是J2EE的核心部分,提供了一种在Java环境中创建可重用的服务器端组件的方式。 J2EE的组件包括: 1. **Java Transaction Service (JTS)**:提供事务管理服务,确保在多操作中的数据一致...

    EJB编程及J2EE系统架构和设计

    《EJB编程及J2EE系统架构和设计》一文详细介绍了Java 2 Platform Enterprise Edition (J2EE) 的各个方面及其核心技术。该文从J2EE的四个主要层面——客户端层(Client Tier)、Web层(Web Tier)、业务层(Business Tier)...

    ejb,rmi.rar_AppBarDemo_ejb_j2ee ejb

    EJB(Enterprise JavaBeans)和RMI(Remote Method Invocation)是Java开发中两个重要的概念,尤其是在J2EE(Java 2 Platform, Enterprise Edition)环境中。这两个技术都是Java平台为企业级应用提供服务的核心组件...

    搞定J2EE核心技术与企业应用:Ajax,JSP,Struts2,Spring,Hibernate,完整扫描版

    而本书《搞定J2EE核心技术与企业应用:Ajax,JSP,Struts2,Spring,Hibernate》则是一本针对Java Web开发的专业书籍,它详细介绍了在现代企业级应用开发中常用的技术和框架。 书中首先对Java EE的来源、整体框架和...

Global site tag (gtag.js) - Google Analytics