当前位置: 首页 > news >正文

【java】EJB(Enterprise Java Bean)概述

EJB概述目录

  • 一、什么情况下需要企业Bean
    • 需要使用EJB的N个理由
  • 二、EJB的基本分类
    • 2.1、Enterprise Bean
    • 2.2、 Message Driven Bean(MDB)——消息驱动Bean,基于JMS
  • 三、定义客户端访问的接口
    • 3.1、 远程客户端——客户端与其调用的EJB对象不在同一个JVM进程中
    • 3.2、本地客户端——客户端与其调用在同一个JVM进程中
    • 3.3、 WebService客户端

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

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

需要使用EJB的N个理由

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

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

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

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

二、EJB的基本分类

2.1、Enterprise Bean

  • Session Bean (会话Bean) :会话Bean可以执行业务逻辑操作,比如注册用户,订单登记,数据库操作等等。
    (会话(session):即从客户端获取EJB对象开始,然后调用EJB方法(可以多次),直到客户端生 命周期结束,或客户端释放了EJB对象为止,成为一次会话。随着会话的终止,EJB对象也有可能会被EJB容器销毁。
    对象的状态:对象的状态是由其实例变量的值组成的。)

  • tateless Session Bean——无状态会话Bean
    (并非是说EJB不能存在状态,而是说EJB容器不会对EJB的状态做管理
    容器会使用实例池的方式,甚至单例的方式来实现无状态Session Bean
    因为EJB容器不会对stateless session bean的状态进行管理,所以它的性能要比stateful session bean 的好)
    Steteful Session Bean——有状态的会话Bean
    ( 有状态的会话Bean:即EJB能够为同一个客户端在多次请求(方法调用)之间保持状态信息。)

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

Persistence——持久化

Entity Bean——实体Bean

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.3、 WebService客户端

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

相关文章:

【java】EJB(Enterprise Java Bean)概述

EJB概述目录一、什么情况下需要企业Bean需要使用EJB的N个理由二、EJB的基本分类2.1、Enterprise Bean2.2、 Message Driven Bean(MDB)——消息驱动Bean,基于JMS三、定义客户端访问的接口3.1、 远程客户端——客户端与其调用的EJB对象不在同一个JVM进程中3.2、本地客户端——客户…...

Android 10.0 Launcher3桌面禁止左右滑动

1.1概述 在10.0的rom定制化开发中,由于Launcher3有一些功能需要定制,这样的需求也好多的,现在功能需求要求桌面固定在Launcher3的app列表页,不让左右移动,就是禁止左右移动的功能实现,所以需要禁止滑动分析页面滑动部分的功能,然后禁用 2.1Launcher3桌面禁止左右滑动的核…...

日期类的实现

文章目录1. 日期类的具体实现1.查询当前月份的天数2. 构造函数的实现(注意)3.d1d24. d1!d25. d1<d26. d1<d27. d1>d28. d1>d29. 日期天数10.日期天数11.日期-天数12. 日期-天数13. d和 d14. --d 和 d--15.日期日期 返回天数2. 函数的声明——date.h3. 函数的定义—…...

2022年这5款熟悉的软件退出了历史舞台

在过去的一年里&#xff0c;有很多新产品发布&#xff0c;当然也有很多产品与我们就此别过。这些产品曾陪伴我们的生活&#xff0c;给我们带来欢乐&#xff0c;帮助我们成长。所以本文将盘点一下在2022年和我们告别的产品。1.微软IE浏览器IE浏览器1995年8月16日正式上线&#x…...

用Nginx打包部署vue3项目及404和500解决

打包vue3 npm run build安装Nginx 这里安装步骤比较繁琐&#xff0c;现在服务器比较便宜&#xff0c;如果想用Nginx&#xff0c;可以去菜鸟教程https://www.runoob.com/linux/nginx-install-setup.html 配置安装一下找到安装路径下的 conf 文件夹 下 nginx.conf文件&#xff0…...

Java面试——多线程并发篇

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

维基百科数据抽取

1. 数据路径 https://dumps.wikimedia.org/enwiki/latest/ ----英文 https://dumps.wikimedia.org/zhwiki/latest/ ----中文 https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2 --下载最新的 https://dumps.wikimedia.org/wikidatawiki/2023…...

2020年因果推断综述《A Survey on Causal Inference》

最近阅读了TKDD2020年的《A Survey on Causal Inference》&#xff0c;传送门&#xff0c;自己对文章按照顺序做了整理&#xff0c;同时对优秀的内容进行融合&#xff0c;如有不当之处&#xff0c;请多多指教。 文章对因果推理方法进行了全面的回顾&#xff0c;根据传统因果框…...

嵌入式linux系统测试程序编写

文章目录 网络CPU load监测性能设定开源测试工具iozone —— 文件系统测试工具iperf —— 网络性能测试工具LMbench —— 系统性能评测LTP —— linux功能/性能压力测试memtester —— 内存测试,坏位检测stressapptest —— 内存流量压力测试stream —— 内存性能测试fio ——…...

力扣SQL刷题5

目录597. 好友申请 I&#xff1a;总体通过率602. 好友申请 II &#xff1a;谁有最多的好友603. 连续空余座位1045. 买下所有产品的客户597. 好友申请 I&#xff1a;总体通过率 官方讲的题目太繁琐了&#xff0c;大概就是&#xff08;表2中列1列2不全相同的行数&#xff09;/&a…...

动态规划详解(完结篇)——如何抽象出动态规划算法?以及解题思路

今天直接开始讲解FIRST&#xff1a;如何抽象出动态规划算法&#xff1f;这个问题&#xff0c;困扰了无数代OIER&#xff0c;包括本蒟蒻在比赛的时候&#xff0c;看一道题&#xff0c;怎么想到他是什么算法的呢&#xff1f;这就需要抽象能力而不同的算法&#xff0c;往往有着不同…...

C语言一维数组篇【下】——每日刷题经验分享

一维数组篇——每日刷题经验分享~&#x1f60e;前言&#x1f64c;有序序列插入一个整数 &#x1f60a;序列中删除指定数字 &#x1f60a;序列中整数去重小乐乐查找数字筛选法求素数总结撒花&#x1f49e;&#x1f60e;博客昵称&#xff1a;博客小梦~ &#x1f60a;最喜欢的座右…...

VHDL语言基础-组合逻辑电路-其它组合逻辑模块

目录 多路选择器&#xff1a; 逻辑功能&#xff1a; 常用的类型&#xff1a; 4选1多路选择器的实现&#xff1a; 求补器&#xff1a; 求补器的实现&#xff1a; 三态门&#xff1a; 三态门的应用实例&#xff1a; 三态门的实现&#xff1a; 缓冲器&#xff1a; 什么是…...

初识Vue

文章目录1. 前言2. Vue 的特点3. 安装 Vue4. HelloWord1. 前言 vue是什么 &#xff1f; 引用 &#xff1a; vue.js 文档   Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层…...

TOUGH系列软件建模实践方法及在地下水、CO2地质封存、水文地球化学、地热等多相多组分系统多过程耦合

查看原文>>> https://mp.weixin.qq.com/s?__bizMzAxNzcxMzc5MQ&mid2247578057&idx7&sn75f8d2c1c6edb28af76a8db4bb773de3&chksm9be2aed9ac9527cf0081082cdcf781e6c37f9f3ba383332ed1116abcbee0f05c0593187e964d&token2070450548&langzh_CN#r…...

Codeforces Round #699 (Div. 2)

E. 题意:n本书,每本书有颜色a[i],一次操作可以将其中一本书放在末尾,求满足:相同颜色的书都是相邻的 的最小操作次数. 显然最多只需要n次,考虑能节省多少次.倒着考虑,记f[i]为i~n最多能节约的次数.先预处理出每种颜色的出现的位置范围l[i],r[i]. 1.不节约这本书f[i] f[i 1]…...

MySQL存储过程的传参和流程控制

目录 一.存储过程传参—in 演示 二.存储过程传参—out 演示 三.存储过程传参—inout 演示 四.流程控制—判断 格式 演示 五.流程控制—case 语法 演示 六.流程控制—循环 循环—while 循环—repeat 循环—loop 一.存储过程传参—in in表示传入的参数&#xff0c;可以传…...

MySQl学习(从入门到精通11)

MySQl学习&#xff08;从入门到精通11&#xff09;第 14 章_视图1. 常见的数据库对象2. 视图概述2. 1 为什么使用视图&#xff1f;2. 2 视图的理解3. 创建视图3. 1 创建单表视图3. 2 创建多表联合视图3. 3 基于视图创建视图4. 查看视图5. 更新视图的数据5. 1 一般情况5. 2 不可…...

关于ThreadLocal

弱引用 1.1 java中的各种引用和测试: https://blog.csdn.net/thewindkee/article/details/102723838 1.2 treadlocal中的弱引用测试: https://blog.csdn.net/thewindkee/article/details/103726942 (这篇很重要) 内存泄露: https://zhuanlan.zhihu.com/p/523628871 综合考虑 …...

【C++】类和对象(中)

文章目录1. 类的6个默认成员函数2. 构造函数概念特性3. 析构函数概念特性4. 拷贝构造函数概念特征5. 运算符重载5.1 前置和后置重载5.2 赋值运算符重载6. 日期类的实现7. const成员8. 取地址及const取地址操作符重载1. 类的6个默认成员函数 如果一个类中什么成员都没有&#x…...

Java的Random类

在Java中&#xff0c;java.util.Random 类是日常开发中最常用的伪随机数生成器。它基于线性同余算法生成随机数&#xff0c;只要给定相同的初始值&#xff08;种子 seed&#xff09;&#xff0c;就能生成完全相同的随机数序列。 &#x1f3b2; Random 类的基础使用 使用 Random…...

从0到1掌握Ansible:让自动化运维不再是梦想

最近在公司推进自动化运维的时候&#xff0c;发现很多同事对Ansible还是一知半解&#xff0c;要么就是简单用用&#xff0c;要么就是直接放弃。其实Ansible真的没那么复杂&#xff0c;我用了这么多年&#xff0c;今天就把我的实战经验分享给大家。 说实话&#xff0c;刚开始接…...

Perplexity Pro年度订阅最后48小时决策清单:7个必测场景+1张动态成本计算器+2024新政策下仅剩的3种合规降本路径

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Perplexity Pro订阅值不值得 核心能力对比&#xff1a;免费版 vs Pro版 Perplexity Pro 提供实时联网搜索、多文件上传解析&#xff08;PDF/DOCX/CSV&#xff09;、无限次深度追问及自定义AI工作区等…...

UWB-IMU、UWB定位对比研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

星际软件开发:为火星殖民地编写第一批代码

一、引言&#xff1a;当测试左移到大气层之外2041年&#xff0c;第一批火星殖民者即将启程。他们携带的不仅是氧气和速食&#xff0c;还有一座预装在密封舱里的微型数据中心。在这片红色荒漠上&#xff0c;代码将比氧气更早醒来——生命维持系统的控制逻辑、通讯中继的协议栈、…...

一图定胜负|虎贲等考 AI 科研绘图:零代码画出期刊级学术图,让论文颜值与专业度双在线

据 Nature 统计&#xff0c;超 90% 的审稿人先看图表&#xff0c;65% 的初审意见直接来自图表质量&#xff0c;一张规范、清晰、专业的学术图&#xff0c;直接影响论文录用与答辩评分。可现实是&#xff1a;Origin、Visio 难学难精通&#xff0c;PPT 做图粗糙不规范&#xff0c…...

书匠策AI课程论文一键生成?我替你们踩了一遍,真香预警!

各位论文困难户们&#xff0c;先别划走&#xff01; 今天不聊别的&#xff0c;就聊一个让我这个老博主都直呼"离谱"的东西——书匠策AI的课程论文功能。我知道你们一看到AI写论文就条件反射觉得是割韭菜&#xff0c;但这次&#xff0c;我是真的被圈粉了。 先说结论…...

从YOLOv1到YOLOv5:一个算法工程师的实战避坑与版本选择指南

从YOLOv1到YOLOv5&#xff1a;算法工程师的版本选择与实战调优指南 在计算机视觉领域&#xff0c;目标检测算法的发展日新月异&#xff0c;而YOLO(You Only Look Once)系列作为其中的佼佼者&#xff0c;凭借其出色的实时性和准确性&#xff0c;已成为工业界和学术界广泛采用的核…...

小熊派gd32f303实战指南(9)— 硬件I2C驱动AT24C02 EEPROM从零到一

1. 硬件I2C与AT24C02基础认知 第一次接触硬件I2C时&#xff0c;我也被那些专业术语搞得一头雾水。简单来说&#xff0c;I2C就像两个人用摩斯密码交流——只需要两根线&#xff08;SDA数据线和SCL时钟线&#xff09;&#xff0c;就能让主设备&#xff08;GD32F303&#xff09;和…...

ThunderAI:开箱即用的桌面AI助手,聚合Ollama与多模型应用实战

1. 项目概述&#xff1a;一个开箱即用的AI助手桌面应用最近在折腾本地AI应用的时候&#xff0c;发现了一个挺有意思的项目&#xff0c;叫ThunderAI。这名字听着就挺带劲&#xff0c;像一道闪电&#xff0c;主打的就是一个“快”和“直接”。简单来说&#xff0c;它就是一个基于…...