`

EJB系列 - 会话Bean基础知识

阅读更多

本人博客文章网址: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注解的方法

 

0
2
分享到:
评论

相关推荐

    精通EJB(3th-en)

    第2篇重点关注EJB编程的具体内容和过程,其中,研究了如何开发如下三种EJB组件:会话Bean、实体Bean和消息驱动Bean。具体内容包括开发各种EJB组件的基础知识(结合开发实例)、组件生命周期的详细阐述;第3篇是本书...

    精通EJB第三版

    第2篇重点关注EJB编程的具体内容和过程,其中,研究了如何开发如下三种EJB组件:会话Bean、实体Bean和消息驱动Bean。具体内容包括开发各种EJB组件的基础知识(结合开发实例)、组件生命周期的详细阐述;第3篇是本书最为令...

    EJB 3.0从入门到精通

    内容依次包含了Java EE概述、EJB基础、搭建EJB环境、会话bean、持久化实体、持久化实体管理器、对象关系映射、JPQL查询、消息驱动bean、事务、提高EJB 3.0性能、从Web层访问EJB 3和EJB安全、EJB和Web服务及EJB表现层...

    EJB3.0 实例教程 -- 切片1

    第四章会话 BEAN(SESSION BEAN).........13 4.1 STATELESS SESSION BEANS(无状态BEAN)开发........13 4.1.1 开发只存在Remote接口的无状态Session Bean 13 4.1.2 开发只存在Local接口的无状态Session Bean...16 ...

    EJB基础

    本教程介绍了 Enterprise JavaBean 技术,特别关注于在分布式计算方案中 Enterprise JavaBean 组件的角色、体系结构、扩展 API 以及使用 EJB 技术的基本知识。 <br/>学完本教程之后,您将会了解: <br/>整体...

    EJB3最新实例教程

    最新EJB 3.0实例教程,运行环境的配置,基础知识的学习,会话BEAN,消息驱动BEAN,实体BEAN,WEN服务,EJB应用框架的使用等等,希望对大家有所帮助

    Java EJB 3.0实例,企业应用开发核心技术 PDF 中文教程.rar

    Java EJB 3.0实例教程——企业应用开发核心技术 PDF,网上有关EJB方面的教程...章节内容丰富,内容涉及环境配置、EJB包相关知识、会话BEAN、消息驱动、实体Bean、使用EJB3.0构建轻量级应用框架、Web应用等众多内容……

    主题:基于ejb 的 仿flash的java富客户端applet 的实现构想 及意义

    目前知道的通信方式 :将ejb的无状态会话bean 发布成web 服务,, 客户端applet 调用后,返回一个无状态会话bean ,这个bean包含了所有所需的业务代码,这个页面就包含了这个网站的所有功能,但 所需的数据靠会话bean调用...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

     本书内容主要包括三部分,第一部分介绍java ee开发的基础知识,以及如何搭建开发环境,包括安装jboss、weblogic应用服务器,以及如何使用svn、netbeans等。第二部分详细讲解了jsf ri、jta、jndi、rmi、jms、...

    J2EE基础知识

    J2EE基础技术: XML、RMI、JNDI 、JMS J2EE核心技术: JDBC、EJB(会话Bean、实体Bean、消息Bean)、Servlet和JSP(JSTL、Struts) J2EE其它技术: JTA、JTS、Java Mail等等

    EJB3.0实例教程

    第一章:前言 第二章:运行环境配置 第三章:基础知识学习 第四章:会话 BEAN 第五章:JMS 第六章:实体BEAN 第七章:WEB服务 第八章:使用EJB3.0构建轻量级应用框架

    jsp servlet 入门学习资料-新手一看就懂

    第2章 预备知识 2.1 Java程序设计基础 2.1.1 Java语言规则 2.1.2 Java变量和函数 2.1.3 子类 2.1.4 this和super 2.1.5 类的类型 2.1.6 抽象类 2.1.7 接口 2.1.8 包 2.2 JavaBeans 2.2.1 JavaBeans的属性 ...

    jsp从入门到高级编程

    第2章 预备知识 2.1 Java程序设计基础 2.1.1 Java语言规则 2.1.2 Java变量和函数 2.1.3 子类 2.1.4 this和super 2.1.5 类的类型 2.1.6 抽象类 2.1.7 接口 2.1.8 包 2.2 JavaBeans 2.2.1 JavaBeans的属性 ...

    JSP高级教程

    第2章 预备知识 2.1 Java程序设计基础 2.1.1 Java语言规则 2.1.2 Java变量和函数 2.1.3 子类 2.1.4 this和super 2.1.5 类的类型 2.1.6 抽象类 2.1.7 接口 2.1.8 包 2.2 JavaBeans 2.2.1 JavaBeans的属性 ...

    JSP高级编程

    第2章 预备知识 2.1 Java程序设计基础 2.1.1 Java语言规则 2.1.2 Java变量和函数 2.1.3 子类 2.1.4 this和super 2.1.5 类的类型 2.1.6 抽象类 2.1.7 接口 2.1.8 包 2.2 JavaBeans 2.2.1 ...

    java 面试题 总结

    JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用...

    JAVA面试题最全集

    一、Java基础知识 1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入...

Global site tag (gtag.js) - Google Analytics