`
solospider
  • 浏览: 7816 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

为什么EJB3.0里面没有了home接口

阅读更多
这个问题迷惑了我很久,EJB2.0里面实现Home接口的类是从JDNI里面获取的,然后用来创建一个EJB的实例,这个实例应该是实现了这个EJB接口的RMI Stub,很容易理解。
但是在EJB3.0里面取消了这个接口,从JDNI查找的结果不是Home类,而直接是一个EJB的实例,代码如下:

	InitialContext context = new InitialContext();
	Cart cart = (Cart) context.lookup("CartBean");


注:Cart是一个Stateful的SessionBean.
如果这个Cart跟2.0一样也是一个RMI Stub的话,那么所有从JNDI查找出来的类应该是连接到同一个Skeleton的,这样的话应该是所有的Client得到的EJB状态是一样的。。。
但事实不是,每个客户端查找出来的EJB实例互相的状态是没有影响的,这个到底是为什么呢?
分享到:
评论
3 楼 solospider 2007-12-12  
对于上面的问题我有一些思路了,虽然不同的客户端拿到是连接到同一个Skeleton的Stub但是在远程方法调用的时候会有一个唯一的id生成来标示不同的客户端,这样就实现了不同客户端的状态的隔离。就像http的Session id一样。
不知道我说得对不对
2 楼 solospider 2007-12-12  
我个人觉得还是有必要去了解这些东西的,要不然Robin也不会费力的去写EJB实现原理了。EJB这个东西虽然屏蔽了很多东西,EJB虽然屏蔽了很多东西,比如分布式和事务,但是如果要使用好EJB还是要了解他到底是如何实现的。很多时候对EJB的滥用就是因为对这个东西不够了解造成的。
1 楼 魔力猫咪 2007-12-12  
EJB3就是为了简化这些东西而开发出来的。并不是没有了,而是被屏蔽了。
你不用担心拿到的EJB对象的生存状态,这些统一由容器管理。只要是在JNDI中注册了这个名字,那么就可以拿来直接用。
你说的这个Bean是有状态SessionBean,当然不会有互相影响的问题。

相关推荐

    ejb2.0与ejb3.0的区别

    ### EJB2.0与EJB3.0的主要区别 #### 一、简介 企业Java Beans(EJB)是Java平台为企业级应用提供的一种组件模型。随着技术的发展,EJB经历了多个版本的迭代,其中EJB 2.0和EJB 3.0是两个重要的里程碑版本。本文将...

    EJB 3.0规范官方文档

    1. **实体Bean(Entity Beans)**:EJB 3.0引入了基于POJO(Plain Old Java Object)的实体Bean,允许开发者使用注解来定义持久化逻辑,而不再需要复杂的接口和Home/Remote接口。这使得实体Bean的创建和维护变得更加...

    EJB3.0实例教程(PDF)

    1. **实体Bean(Entity Beans)的简化**:EJB3.0引入了注解驱动的实体管理,不再需要编写接口或Home接口。通过`@Entity`、`@Table`、`@Id`等注解,可以直接将Java类映射到数据库表,大大减少了代码量。 2. **Java ...

    EJB3.0开发文档

    在EJB3.0中,实体Bean不再需要编写复杂的Home接口和Remote接口,而是通过注解(Annotations)直接在Java类上定义。JPA(Java Persistence API)成为默认的持久化机制,使得数据模型可以直接映射到数据库表,这大大...

    EJB3.0实例教程及源代码

    **EJB3.0实例教程及源代码** 本教程专注于企业级JavaBeans(EJB)3.0技术的实践应用,由黎活明提供。EJB是Java平台上的一个核心组件,用于构建可扩展的、可靠的、安全的分布式应用程序。EJB 3.0是EJB规范的一个重要...

    EJB3.0 EJB3.0

    EJB 3.0引入了JPA(Java Persistence API),允许开发者使用注解来定义实体类,无需编写复杂的Entity Home和Entity Bean接口。 - **会话Bean(Session Bean)**:提供临时的服务,处理客户端请求。会话Bean分为无...

    Eclipse开发EJB_3.0

    在 EJB 3.0 中,JNDI 查找 EJB 通过 EJB 中的 Bean 的名称中的 Remote 注释所指向的远程接口名称来找到该 EJB。该方法可以理解为 EJB 2 中的 ejb-jar 配置文件中的 JNDI-Name 标签中的值。 EJB 3.0 中的 ejb-jar ...

    jboss ejb3.0开发介绍

    ### jBoss EJB 3.0 开发指南 #### 一、引言 随着 Java 技术的发展,企业级应用的复杂度不断提高,EJB(Enterprise JavaBeans)作为 Java EE 标准的一部分,在构建分布式系统方面扮演着重要的角色。EJB 3.0 相较于...

    EJB3.0与EJB2.0的区别

    在EJB2.0中,调用EJB对象需要通过JNDI查找和Home接口创建。而在EJB3.0中,通过@EJB注解可以直接注入所需的EJB实例,降低了对象间的耦合度,使代码更加清晰。例如: ```java @EJB private TestSessionLocal testbean...

    ejb3.0实例教程 好的没话说 超级清新 不下后悔 ejb3.0教程

    1. **实体Bean(Entity Beans)**:EJB 3.0引入了注解驱动的实体Bean,不再需要编写接口和Home接口,只需使用@Entity和@Id注解,即可轻松创建持久化对象。此外,支持JPA(Java Persistence API),可以使用ORM...

    ejb3.0技术规范(中文版)

    1. **实体Bean(Entity Beans)**:ejb3.0引入了注解驱动的实体Bean,不再需要编写大量的接口和Home接口。开发者可以通过@Entity注解定义一个Java POJO(Plain Old Java Object)为实体Bean,@Id注解用于指定主键。 ...

    EJB3.0 学习笔记

    会话Bean在EJB3.0中也得到了简化,无需编写Home接口和Remote接口,只需一个实现业务逻辑的Bean类。`@Stateless`和`@Stateful`注解用于标记无状态和有状态会话Bean。无状态会话Bean适用于方法调用不涉及会话状态的...

    EJB3.0学习心得

    - **无接口视图**: 在 EJB 3.0 中,开发人员不再需要定义 home 接口和 remote 接口。这大大简化了代码结构,并使得开发更为简单。 - **依赖注入 (DI)**: EJB 3.0 支持自动装配(Autowiring),即通过注解的方式...

    EJB3.0课件讲义

    Client view在EJB 3.0 中更加简洁,客户端可以直接通过接口调用bean的方法,而无需通过Home接口创建bean实例。 Transaction管理在EJB中是至关重要的,EJB 3.0 允许开发者通过注解控制事务边界,如`@...

    达内EJB3.0精典

    3. **实体 Bean**:EJB3.0中的实体Bean(Entity Bean)基于JPA,不再需要Entity Home和Entity Bean接口,而是使用简单的Java POJO(Plain Old Java Object)作为数据模型,并通过`@Id`注解定义主键。 4. **会话 ...

    EJB3.0实例教程_程序设计

    3. **简化会话Bean**:会话Bean(Session Beans)的创建和调用过程被大大简化,不再需要Home接口和Remote接口,直接通过无状态会话Bean(@Stateless)或有状态会话Bean(@Stateful)注解即可。 4. **自动事务管理**...

    精通EJB3.0rar

    3. **无状态会话Bean(Stateless Session Beans)**:无状态会话Bean的创建和管理变得更加简单,不再需要Home接口和Remote接口,直接通过注解定义。 4. **有状态会话Bean(Stateful Session Beans)**:虽然仍保留...

    ejb3.0实例代码

    通过以上分析,我们可以看到,`ejb3.0实例代码`不仅展示了EJB 3.0的核心特性,还为我们提供了一个实际的购物车应用场景。这个模型可以作为学习EJB 3.0的实践案例,帮助开发者更好地理解和掌握企业级Java应用程序的...

    EJB3.0深入编程

    通过《EJB3.0深入编程》教程,开发者可以系统地学习如何使用这些特性来构建高效、可靠的分布式应用程序。教程中的实例和实践指导将有助于加深理解,提升实战能力。无论是初学者还是经验丰富的开发者,都能从中...

    EJB3.0.PDF

    1. **消除复杂接口与回调方法**:EJB2.1要求开发者创建多个接口并实现冗余的回调方法,而EJB3.0则简化了这一流程,消除了不必要的Remote、Home、EJB接口,大大减少了开发工作量。 2. **采用POJO模型**:实体Bean在...

Global site tag (gtag.js) - Google Analytics