EJB(Enterprise Java Bean)概述

简介: 一,什么情况下需要企业Bean           企业Bean运行在EJB容器中。企业Bean实际上就是一个封装了业务逻辑的Java类。           需要使用EJB的N个理由:              1,分布式!分布式对象之间的相互协作,完成特定的业务功能。


一,什么情况下需要企业Bean


           企业Bean运行在EJB容器中。企业Bean实际上就是一个封装了业务逻辑的Java类。


           需要使用EJB的N个理由:


              1,分布式!分布式对象之间的相互协作,完成特定的业务功能。分布式对象之间应实现分布透明性(或位置透明性)。即在客户端代码中无需指定分布式对象的位置(通过配置来解决)。

              2,分布式对象之间的事务支持(RMI不支持事务)。

              3,应用程序需要支持不同的客户端,只需要少量的代码,就可以让远程客户端访问到企业Bean。


         so,如果你的应用需要分布式部署,+分布式对象需要支持事务+关键业务逻辑需要能够支持不同类型的客户端,那么EJB将是很好的选择。


二,EJB的基本分类


              1,Enterprise Bean

                     

                   1,Session Bean (会话Bean) :会话Bean可以执行业务逻辑操作,比如注册用户,订单登记,数据库操作等等。

                            

                               会话(session):即从客户端获取EJB对象开始,然后调用EJB方法(可以多次),直到客户端生 命周期结束,或客户端释放了EJB对象为止,成为一次会话。随着会话的终止,EJB对象也有可能会被EJB容器销毁。

                              对象的状态:对象的状态是由其实例变量的值组成的。

                               )

                            Stateless Session Bean——无状态会话Bean

                             

                                   并非是说EJB不能存在状态,而是说EJB容器不会对EJB的状态做管理

                                   容器会使用实例池的方式,甚至单例的方式来实现无状态Session Bean

                                  因为EJB容器不会对stateless session bean 的状态进行管理,所以它的性能要比stateful session bean  的好

                               )

                            Steteful Session Bean——有状态的会话Bean

                            

                                   有状态的会话Bean:即EJB能够为同一个客户端在多次请求(方法调用)之间保持状态信息。

                              )

                     2, Message Driven Bean(MDB)——消息驱动Bean,基于JMS


             2,Persistence——持久化

                       Entity Bean——实体Bean


三,定义客户端访问的接口


              客户端仅通过业务逻辑Bean所定义的接口来访问业务逻辑(跟具体实现无关)。

        当在开发企业Bean之前,首先要做的第一个决定是:EJB要支持什么样的客户端?因为不同 的客户端,其访问方式也将不同。


         1,远程客户端——客户端与其调用的EJB对象不在同一个JVM进程中


               一个远程客户端有如下特性:

                   1,它可以运行在跟企业Bean不同的机器或不同的JVM进程上

                   2,它可以是web组件,应用客户端,或其他企业Bean

                   3,对远程客户端来说,企业Bean的位置是透明的

                   4,为了创建一个能够被远程客户端访问的企业Bean,必须用@Remote注解来定义这些企业Bean。


         2,本地客户端——客户端与其调用在同一个JVM进程中


                本地客户端具有如下特性:

                   1,它必须与企业Bean运行在同一个JVM中

                   2,它可能是一个Web组件或别的企业Bean

                   3,为了创建一个能够被本地访问的企业Bean,你必须用@Local注解来定义这些企业Bean

                   4,一个企业Bean接口可以同时被定义为@Remote和@Local


         3,WebService客户端


                  webservice客户端可以访问无状态会话Bean接口,只有在业务逻辑方法被标识为@webMethod的时候,web service 客户端才可以访问到。









目录
相关文章
|
12天前
|
安全 Java API
Java 18 概述:新特性一览
Java 18 作为 Java 平台的最新版本,引入了多项令人振奋的新特性和改进,包括模式匹配、记录类型、流库改进、外部函数与内存 API 以及并发处理增强。这些新功能不仅提升了开发者的生产力,还显著增强了 Java 的性能和安全性。本文将详细介绍 Java 18 的主要新特性,并通过代码示例帮助读者更好地理解和应用这些功能。
|
1月前
|
存储 Oracle Java
01 Java概述基础与计算机基础(DOS+进制+原码反码补码)
01 Java概述基础与计算机基础(DOS+进制+原码反码补码)
35 17
|
1月前
|
存储 算法 Oracle
19 Java8概述(Java8概述+lambda表达式+函数式接口+方法引用+Stream+新时间API)
19 Java8概述(Java8概述+lambda表达式+函数式接口+方法引用+Stream+新时间API)
55 8
|
1月前
|
Java 数据安全/隐私保护
09 Java面向对象三大特征(概述)
09 Java面向对象三大特征(概述)
52 4
|
1月前
|
Java Spring 容器
Java SpringBoot 中,动态执行 bean 对象中的方法
Java SpringBoot 中,动态执行 bean 对象中的方法
34 0
|
1月前
|
Java Spring
Java SpringBoot Bean InitializingBean 项目初始化
Java SpringBoot Bean InitializingBean 项目初始化
36 0
|
2月前
|
存储 前端开发 Java
Java中的不同Bean作用域
【7月更文挑战第5天】
29 0
Java中的不同Bean作用域
|
3月前
|
设计模式 算法 Java
Java设计模式:核心概述(一)
Java设计模式:核心概述(一)
|
3月前
|
Java 持续交付 Maven
Java报错:Missing ServletWebServerFactory bean,如何解决
Java开发中遇到`Missing ServletWebServerFactory bean`错误?该问题可能由依赖冲突、配置问题或环境不一致引起。解决方法包括:检查依赖版本一致性、修复配置错误、确保环境匹配,以及查看IDE中的JRE配置。预防这类问题,可采用版本管理工具、CI/CD流程、代码审查和社区学习。木头左提醒,记得点赞和分享,下次见!
Java报错:Missing ServletWebServerFactory bean,如何解决
|
3月前
|
Java API 数据处理
Java Bean参数验证:深入探索javax.validation.constraints注解
Java Bean参数验证:深入探索javax.validation.constraints注解