【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款熟悉的软件退出了历史舞台
在过去的一年里,有很多新产品发布,当然也有很多产品与我们就此别过。这些产品曾陪伴我们的生活,给我们带来欢乐,帮助我们成长。所以本文将盘点一下在2022年和我们告别的产品。1.微软IE浏览器IE浏览器1995年8月16日正式上线&#x…...
用Nginx打包部署vue3项目及404和500解决
打包vue3 npm run build安装Nginx 这里安装步骤比较繁琐,现在服务器比较便宜,如果想用Nginx,可以去菜鸟教程https://www.runoob.com/linux/nginx-install-setup.html 配置安装一下找到安装路径下的 conf 文件夹 下 nginx.conf文件࿰…...
Java面试——多线程并发篇
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
维基百科数据抽取
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》,传送门,自己对文章按照顺序做了整理,同时对优秀的内容进行融合,如有不当之处,请多多指教。 文章对因果推理方法进行了全面的回顾,根据传统因果框…...
嵌入式linux系统测试程序编写
文章目录 网络CPU load监测性能设定开源测试工具iozone —— 文件系统测试工具iperf —— 网络性能测试工具LMbench —— 系统性能评测LTP —— linux功能/性能压力测试memtester —— 内存测试,坏位检测stressapptest —— 内存流量压力测试stream —— 内存性能测试fio ——…...
力扣SQL刷题5
目录597. 好友申请 I:总体通过率602. 好友申请 II :谁有最多的好友603. 连续空余座位1045. 买下所有产品的客户597. 好友申请 I:总体通过率 官方讲的题目太繁琐了,大概就是(表2中列1列2不全相同的行数)/&a…...
动态规划详解(完结篇)——如何抽象出动态规划算法?以及解题思路
今天直接开始讲解FIRST:如何抽象出动态规划算法?这个问题,困扰了无数代OIER,包括本蒟蒻在比赛的时候,看一道题,怎么想到他是什么算法的呢?这就需要抽象能力而不同的算法,往往有着不同…...
C语言一维数组篇【下】——每日刷题经验分享
一维数组篇——每日刷题经验分享~😎前言🙌有序序列插入一个整数 😊序列中删除指定数字 😊序列中整数去重小乐乐查找数字筛选法求素数总结撒花💞😎博客昵称:博客小梦~ 😊最喜欢的座右…...
VHDL语言基础-组合逻辑电路-其它组合逻辑模块
目录 多路选择器: 逻辑功能: 常用的类型: 4选1多路选择器的实现: 求补器: 求补器的实现: 三态门: 三态门的应用实例: 三态门的实现: 缓冲器: 什么是…...
初识Vue
文章目录1. 前言2. Vue 的特点3. 安装 Vue4. HelloWord1. 前言 vue是什么 ? 引用 : vue.js 文档 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,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表示传入的参数,可以传…...
MySQl学习(从入门到精通11)
MySQl学习(从入门到精通11)第 14 章_视图1. 常见的数据库对象2. 视图概述2. 1 为什么使用视图?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…...
js下载文件
url为文件的src地址 url必须符合同源策略或者url的接口地址允许跨域,否则浏览器会报跨域错误 axios.get(data.url ,{ responseType: ‘blob’, }) .then( response>{ let blob new Blob([response.data]); let url window.URL.createObjectURL(blob); // 创建 …...
ESP8266 + STC15+ I2C OLED带网络校时功能的定时器时钟
ESP8266 + STC15+ I2C OLED带网络校时功能的定时器时钟 📍相关篇《ESP8266 + STC15基于AT指令通过TCP通讯协议获取时间》 📌ESP8266 AT固件基于安信可AT固件,相关刷AT固件可以参考《NodeMCU-刷写AT固件》 🔖STC15 单片机采用的是:STC15F2K60S2 晶振频率采用内部:22.11…...
计算机入门基础知识大全
♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的,绽…...
Python程序出现错误怎么办?
Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。 异常处理: 本站Python教程会具体介绍。 断言(Assertions):本站Python教程会具体介绍。 python标准异常 异常名称 描述 BaseException 所有异常…...
【Vue3】v-if和v-for优先级
🎈博客主页:🌈我的主页🌈 🎈欢迎点赞 👍 收藏 🌟留言 📝 欢迎讨论!👏 🎈本文由 【泠青沼~】 原创,首发于 CSDN🚩…...
Windows上实现 IOS 自动化测试
本文介绍如何使用tideviceWDAairtest/facebook-wda实现在Windows上进行IOS APP自动化测试 环境准备 Windows Python环境 Python 3.6 WebDriverAgent安装 下载最新的项目到Mac:https://github.com/appium/WebDriverAgent $ git clone https://github.com/appiu…...
Linux云服务器下怎么重置MySQL8.0数据库密码
文章目录一、修改my.cnf配置文件为mysql免登陆二、免密登陆mysql三.给root用户重置密码1、首先查看当前root用户相关信息,在mysql数据库的user表中2、把root密码置为空3、退出mysql,删除/etc/my.cnf文件中添加进去的skip-grant-tables 重启mysql服务4、使…...
JVM调优
JVM调优-VisualVmVisualVm/ Jconsule远程连接第一种方式第二种方式:java 11开启远程GC连接如果还连不上考虑防火墙拦截了端口firewall-cmd --list-all,查看一下并暴露对应端口连接配置VisualVm界面简介采集GC信息的一些命令垃圾回收器切换VisualVm/ Jconsule远程连接…...
【配电网规划】SOCPR和基于线性离散最优潮流(OPF)模型的配电网规划( DNP )(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
锦正茂EM3电磁铁的技术参数
产品特点: ※U形结构、视野开阔、磁场强度高、磁场强度大小调节方便 ※体积小、重量轻、占空比小、结构紧凑、磁场性能更佳 ※电磁铁的工作气隙调节轻便灵活,极头处设有螺纹,更换极头装卸方便 ※可选配工作间隙刻度指示 ※小气隙时用于铁…...
做一个营销型网站/关键词挖掘站长工具
有一些平板或者一些早教机,都是内置了一张TF内存卡的,而有时候我们会因为内存卡太小;或者tf卡被误格式化导致内置的数据没有了,如果你还有朋友有这些机器的话,完全可以把他内存卡里的数据克隆出来,然后写入…...
旅游网站的建设方案/首页关键词优化价格
1.VLAN规划。 通常,不同的部门规划不同的vlan,如上图PC1和PC2属于同一个VLAN,PC3和打印机属于同一VLAN下: 部门VLANPC1 、PC210PC3 ,打印机20 交换机上创建vlan,主机互联的接口配置为access接口ÿ…...
专业的单位网站开发/广告公司营销策划方案
1. UDP概述 UDP:User Datagram Protocol 用户数据报协议 2. UDP 有如下的特点: 无连接、不可靠 无连接:意思就是在通讯之前不需要建立连接,直接传输数据。 不可靠:是将数据报的分组从一台主机发送到另一台主机,但并不保证数据报能够到达另一端,任何必须的可靠性都由应用…...
武汉北京网站建设公司/谷歌google浏览器官方下载
假设我有以下两个表:STUDENTstudentid lastname firstname1 Smith John2 Drew NancySTUDENT_STORYstudentid dateline storyid status1 1328313600 10 21 1328313601 9 12 1328313602 14 22 1328313603 12 1现在,我需要一个SQL查询,将选择每个学生以及该学生在学生故…...
怎么做网站播放器/东莞网络排名优化
一,面向对象。 面向对象的程序设计:核心是对象二字,对象是特征与技能的结合体,基于面向对象设计程序就好比再创造一个世界,你就是这个世界的上帝,是一种‘上帝式’的思维方式。 优点: 解决了程序…...
江西建设厅网站官网/搜索引擎优化的技巧有哪些
设置了浮动的元素,页面排序和堆叠会发生变化。浮动元素放置在普通元素和定位元素之间。位置关系如下:1.根元素2.正常的元素3.浮动元素4.行内元素按正常布局渲染4.设置了定位的元素示例如下:(注意元素的前后位置)1 <…...