本人博客文章网址:https://www.peretang.com/basic-knowledge-of-session-bean/
什么是会话
有限的时间周期内,客户端和服务器之间的连接
为什么使用会话bean
因为EJB大部分服务都是专门提供给会话bean的
1. 并发和线程安全: 容器利用很多技术来自动确保开发者不必担心并发或线程安全的问题
2. 远程处理和Web服务的服务提供
3. 事务和安全管理
4. 拦截器
会话bean的规范
1. 至少具有一个业务接口(EJB3.1后可以不需要)
2. 会话bean必须是具体的, 不能把会话bean定义为final的, 或抽象的
3. 会话bean中必须有无参的构造器
4. 可以在会话bean类或者父类中定义业务方法和生命周期回调方法
5. 会话bean可以是另一个会话bean或者任何其他POJO的子类, 当是另一个会话bean 的子类时, 父类中定义的生命周期回调方法和依赖注入的注解都会被当前bean类继承
6. 会话bean方法不能以"ejb"开头, 所有业务方法都必须为公开的, 不能是final或者静态方法, 另外如果该会话bean是remote的话, 所有入参和出参都必须实现序列化接口
业务接口
1. 本地接口:@Local 相同的容器(JVM)实例中进行协同操作
2. 远程接口:@Remote 不同的容器(JVM)实例中进行协同操作 通过RMI进行访问
3. Web服务端点接口:@WebService 为无状态bean独有,可以把无状态bean暴露为基于SOAP的Web服务
处理多个业务接口:不能用一种以上的访问类型注解标记同一个接口,可以选择用父接口,然后子接口继承来避免代码重复
无状态会话bean
用于建模不维护会话状态的任务
有两种创建模式, 一种是池化, 由容器创建会话bean池, 并创建相应数量的会话bean示例, 并对其进行管理; 另一种是单例模式(需要EJB3.1及以后的版本才支持)
注解:@Stateless 通知容器该类是无状态bean,容器会自动为bean提供:并发控制,线程安全,池化,事务管理等服务
有状态会话bean
用于建模需要维护会话状态的任务,EJB容器会为我们保持会话的状态
必须有使用@Remove注解的方法
注意项:适当选择会话的数据,尽量使用占有资源小的数据;记得使用钝化和删除
替代方式:如果是Web应用,使用HttpSession来维护状态
会话bean最佳实现
1. 选择会话bean类型, 即是有状态bean还是无状态bean
2. 分析会话bean接口类型(@Local,@Remote)
3. 不要把有状态会话bean注入无状态会话bean或者Servlet中
4. 分割横切事务项(使用拦截器AOP来处理)
5. 有状态会话bean中储存的数据类型(慎重选择)
6. 有状态会话bean必须定义@Remove注解的方法
相关推荐
【EJB会话BEAN PPT】概览 EJB,全称Enterprise JavaBeans,是Sun Microsystems(现Oracle)提出的一种服务器端组件模型,主要用于构建分布式应用程序。它在Java平台上扮演着重要角色,类似于微软的.NET技术,但具有...
### EJB基础知识与编程方法详解 #### 一、EJB概念与原理 ##### 1. 什么是EJB EJB(Enterprise JavaBeans)是Java平台的一种企业级组件模型标准,用于构建可重用的企业级应用组件。它由Sun Microsystems制定,并...
EJB Core涵盖了EJB的基础架构,包括会话bean(Session Beans)、实体bean(Entity Beans)和消息驱动bean(Message-Driven Beans)。在EJB 3.0中,主要引入了注解驱动的编程模型,简化了开发过程,减少了XML配置。...
### EJB3基础知识与实践教程 #### 一、EJB3简介 EJB3(Enterprise JavaBeans 3)是Sun Microsystems推出的一种用于开发多层企业级应用的技术标准,它是Java EE平台的重要组成部分之一。EJB3相较于之前的版本进行了...
Java Message-Driven Bean(MDB)是企业级Java(EJB)...以上就是基于Java的Message-Driven Bean EJB实例源代码所涉及的主要知识点。理解这些概念对于开发和维护Java EE应用,尤其是需要异步处理和解耦的场景至关重要。
【无状态会话Bean实验指导】的文档主要涵盖了如何开发和测试无状态Session Bean的步骤,这是企业级JavaBeans(EJB)技术的一部分,属于中间件领域的知识。EJB是Java平台上的一个标准,用于构建可扩展、可靠的分布式...
EJB作为企业级Java开发的核心,其基础知识涵盖了组件模型、会话bean、实体bean和消息驱动bean,以及它们在Java EE架构中的作用。理解并熟练掌握EJB,对于想要深入Java企业级开发的程序员至关重要。通过学习和实践EJB...
第2章:EJB会话Bean - **主要内容:** - 会话Bean的概念和分类。 - Stateful Bean与Stateless Bean的区别。 - 会话Bean的配置和部署。 - 会话Bean的远程和本地接口设计。 - 会话Bean与事务处理。 - **关键...
#### 三、实战EJB之二:开发会话Bean(无状态会话Bean) **什么是无状态SessionBean?** 无状态会话Bean是一种EJB组件类型,它不保留客户端之间的任何状态信息。每次客户端请求都会创建一个新的实例,这意味着每个...
- **章节内容**:介绍Java持久性API (JPA)的基础知识及其与EJB 3.0的集成。 - **核心知识点**: - 对象关系映射(ORM)的概念。 - JPA的主要特性,如实体类的定义和查询语言的使用。 - 如何利用JPA来简化数据库访问...
1. **EJB组件**:EJB组件包括Session Beans(会话bean)用于表示业务逻辑,Message-driven Beans(消息驱动bean)用于处理JMS消息,以及Entity Beans(实体bean)用于持久化数据。 2. **注解驱动**:EJB3.0引入了...
在本案例中,我们讨论的是EJB 2.0的会话bean(Session Bean),这是一种临时性的业务逻辑组件,用于处理单个客户端请求。 会话bean的主要职责是封装应用的业务逻辑,它们可以被多个客户并发访问,但每个客户拥有...
EJB 提供了一系列的服务,如生命周期管理、代码生成、持久性管理、安全性、事务处理、锁和并发管理,使得开发者可以专注于业务逻辑,而无需过多关注底层系统的复杂性。 1. **EJB类型**: - **Session Bean**:代表...
- EJB 1.x:早期版本,主要关注远程方法调用(RMI)和EJB 1.1引入的会话Bean。 - EJB 2.x:增加了接口基于的编程模型,实体Bean使用JPA(Java Persistence API)进行持久化,引入了CMP(容器管理持久性)和BMP...
下面将详细阐述EJB的基础知识,主要涉及无状态会话Bean、有状态会话Bean以及实体Bean。 1. 无状态会话Bean: 无状态会话Bean不保存与客户端交互的任何特定状态,这意味着它们不会在多个调用之间保持信息。这使得无...
### EJB3.1技术培训知识点...以上内容详细介绍了EJB3.1中Session Bean的相关知识点,包括不同类型的会话Bean、它们的开发方式、生命周期管理以及调用机制等方面。希望这些信息能帮助开发者更好地理解和掌握EJB3.1技术。
以上内容概述了《JbossEJB3.0实例教程》的主要知识点和技术细节,涵盖了从运行环境配置、开发前的准备、会话Bean和实体Bean开发,到Web服务集成和构建轻量级应用框架等各个方面。通过学习这些知识点,初学者可以快速...