EJB学习笔记(2)

EJB学习笔记——会话Bean 1.EJB3简介:EJB是企业级java bean(Enterprise Java Bean)开发技术,是基于IIOP协议的分布式远程方法调用技术(RMI),EJB3在JavaEE5中被正式引入,去掉了EJB2以前的复制度,使得EJB3更加轻量级,同时将实体Bean单独分拆成为JPA规范,从而使EJB3更加专注于会话Bean和消息驱动Bean的业务逻辑,同时EJB3中全面支持java注解方式,大大简化开发的难度提高开发效率。2.在客户端调用一个简单EJB3程序:首先使用一个简单例子演示客户端调用EJB3的基 阅读详情
     本来这篇日志应该早就写了,但由于近期工作上的问题才拖了这么久,另外sourceforge.net竟然tmd被电信给封了,导致我jboss也下不了,好在公司有自己的dns服务器,公司还能下。
     第二篇学习笔记主要是针对《Mastering EJB 3rd》的第二和第三章。第二章主要介绍ejb开发的几个组成部分,第三张则是ejb的hello world。
     这里主要是在理一下思路,重新阐述一下ejb开发的几个组成部分。首当其冲当然是Enterprise Bean第一章所讲到的SOA正是通过Enterprise Bean来表现的。Enterprise Bean一共有三种,Entity Bean,Session Bean和Message Driven Bean。Entity Bean就我目前的理解相当于O/R Mapping中将某张关系表映射成某个对象这样的一个概念。但是记住SOA所以Entity Bean表示的是更为抽象的概念,他其实是将业务逻辑中的某个实体映射成一个对象。所以称作Entity Bean。举个例子图书馆关系系统中书就是一个实体,所以可以构造一个Entity Bean来描述书这个概念。Session Bean是对某个业务流程的操作过程。再拿图书馆系统举例,注册书,移走书,将书和这本书目前的所有者绑定,这些都是书的业务处理过程,把这些操作封装成一个个方法并进一步封装成一个类,那这个类就是Session Bean了,至于Message Bean资料上的概念是由消息驱动的业务处理过程,但是我对这个概念还不是很理解,将会在以后的学习笔记中详述。
       我们知道ejb的核心是rmi-iiop,因为enterprise bean可能不在本地,而要实现对enterprise bean的远程调用,就要利用rmi技术,这就引出了ejb object这个概念。ejb object是什么?简单来说,他是为了实现location transparent而产生的东西。什么是location transparent?即当你在调用远程对象的某个方法时,你并不知道这件事,或者说你觉得你这个对象就在本地。事实上,完全的地域透明性是不可能的,由于网络传输的不稳定和对远程状态的不了解(比如远程对象所在的机器突然当机了)必须要在方法里抛出RemoteException,这样方法签名就不可能完全相同。事实上对于远程ejb object来说,他所必须定义enterprise bean中的所有方法,但是和enterprise bean中的业务方法的唯一不同点就是ejb object的这些方法必须抛出RemoteException。同样,可能enterprise bean就在本地,所以ejb object对象也有可能是本地ejb对象,这样方法签名就和enterprise bean中的业务方法完全一致了。ejb object的实现一般由ejb容器完成(比如jboss),程序员可以不必理会。
      你可能认为这样的话客户端就直接和ejb object交互,通过远程调用,去执行真正的enterprise bean的方法。的确客户端是直接和ejb object去交互,但绝对不是自己去new 一个ejb object事实上,刚刚已经说过ejb object的实现类是由容器负责实现的,你也不可能去new。更为重要的是在之前的管理好你的对象的blog中已经说明了创建对象必须由专门的管理类去完成,那ejb的机制肯定更是这样,于是ejb 还提出了一个ejb home的概念,ejb home中提供了工厂方法来返回ejb object的具体实现类(当然对你而言你看到的仅仅是接口),同样ejb home也有remote 和local之分,remote也要抛出远程异常。
       总结一下,开发ejb时,核心是enterprise bean,里面会有业务的具体实现,为了实现地域透明性,所以要有ejb object,ejb object有remote和local之分。为了得到ejb object的引用需要有ejb home中的工厂方法来实现。所以还要有ejb home,也有remote和local之分。
       当你把这些都写完后,最后要做的就是写部署描述符文件ejb-jar.xml这个文件中描述了你要用到的enterprise bean,ejb object,ejb home等的相关信息,容器就是通过这些信息去管理ejb的整个流程的。
       完成部署描述符后,就可以部署ejb了,把上面写好的这些东西按照ejb specification中的目录结构放好后打成jar包放到特定容器规定的目录中,就可以把这个ejb服务起来了。
       注意,你只是起了ejb服务,还没有任何客户端!现在客户端唯一要做的是就是得到ejb home,在通过ejb home中的工厂方法得到ejb object然后调用业务方法。这里的问题是如何得到ejb home?通常情况下是用jndi,在容器中配置好相关ejb的jndi后,就可以在客户端代码中lookup ejb home了。
       本来想帖一段第三章的这几个模块的代码,但是想想这种例子往上多的是,我觉得最重要的还是enterprise bean,ejb object和ejb home这三个概念本身和他们的作用。学习这样的一种设计思想。不过事实上这样的设计其实已经暴露出了ejb过于复杂的缺点,如果没有分布式应用的话,这样做是毫无必要的,因为根本不存在地域透明性的问题了。曾经有个笑话,ejb很火的那个时候如果问许多企业的设计师哪些人用ejb肯能都会举手,但是一旦问哪些用到了分布式系统可能其中只有1,2个人会举手。所以,我个人认为软件是为了方便人使用,而不是人为了方便软件在做事情。如果整个系统没有分布式应用的话,轻型框架可能会更加适合。当然ejb 本身的思想还是优秀的,学习笔记是还要写下去的
 
EJB体系结构之EJB容器 EJB容器 EJB容器(中间件)在EJB服务器环境中进行,EJB容器为EJB构件提供操作环境。        主要来说,EJB容器管理一下的系统级问题:      持久性(Persistence)      生命周期管理(Life Cycle Management)      安全性(Security)      事务管理(Transaction Management 阅读详情

相关推荐

拼多多/Temu反爬参数逆向踩坑记:从浏览器调试到补环境完整复盘

本文详细解析了拼多多/Temu反爬参数`anti_content`的逆向工程实战,从浏览器调试到补环境完整复盘。通过JavaScript逆向技术,拆解关键函数定位、反混淆算法还原及补环境技术应用,帮助开发者突破电商平台复杂反爬系统,提升数据采集效率。

weixin_33978722的博客 914

EJB2学习笔记

EJB(Enterprise JavaBean)企业级JavaBean,J2EE规范把EJB分为三类:会话Bean(SessionBean),实体Bean(EntityBean),消息驱动Bean(MessageDrivingBean)。     我们以最简单的会话Bean来认识下EJB。     会话Bean分为:无状态会话Bean和有状态的会话Bean,用通俗的话理解就是:不记录状态的Be...

Faith 224

Weaxor勒索病毒实战分析:从加密算法到防御策略(附检测工具清单)

本文对Weaxor勒索病毒进行了深度实战剖析,详细拆解了其采用ChaCha20与AES-CTR的混合加密算法、横向移动手法及数据回传行为。文章重点分析了其密钥生成机制的“漏洞修复”,并提供了从主机加固、网络监控到基于IOC威胁狩猎的立体化企业级防御策略与检测工具清单。

weixin_29233333的博客 263

Weblogic EJB 学习笔记(2)精

6、ejb 引用 在ejb-jar.xml <ejb-ref> <description> an EJB reference to the Widget EJB(描述)</description> <ejb-ref-name>ejb/WidgetEJB</ejb-ref-name> <ejb-ref-type...

weixin_30445169的博客 110

UG NX与PLC-1500的在环虚拟测试

TIA、PLCSIM、NetToPLCsim、KEPServerEX以及UG NX的在环虚拟测试

lvtlvtlvtlvt的博客 4220

基于FME—三调篇—尖锐角及小缝隙处理

1 问题分析: 该功能实现在FME较为简单,相对ARCGIS模型构建器以及ARCGIS ENGINE,FME更适合无代码基础的人群。在三调内业数据处理要求中,尖锐角是不允许存在的。本文基于FME实现了对尖锐角的自动查询与消除以及自动处理在消除尖锐角过程中产生的缝隙,并进行了拓扑检查,实现自动化批量处理尖锐角的功能,提高工作效率。 2 总体思路: 2.1 实现功能分析: 1.找出小于指定角度的尖锐角...

qq_33315579的博客 9184

ejb3学习笔记2(ejb3 helloworld之本地远程调用)

ejb3学习笔记2(ejb3 helloworld之本地远程调用)   一。改写组件,再次导出jar包,拷贝到deploy目录下     package cn.wenkun.ejb.service; import javax.ejb.Remote; @Remote public interface HelloWorldRemoteService extends HelloW...

caowenkuns的专栏 166

零基础教你学RDMA驱动开发--第8篇:队列对(QP)、完成队列(CQ)与工作请求(WR)机制剖析

本文深入剖析了RDMA(远程直接内存访问)中的核心机制:队列对(QP)、完成队列(CQ)和工作请求(WR)。QP作为通信端点包含发送队列(SQ)和接收队列(RQ);WR是用户提交的操作指令,转换为工作队列元素(WQE)后由网卡异步执行;CQ则提供完成通知机制。文章详细介绍了三者的协作原理,包括QP状态机、WR提交方式、CQ轮询机制,以及关键的信号控制技术(Signaled Mode)来优化性能。同时对比了SEND/RECV和RDMA WRITE两种模式的差异,提供了调试技巧和最佳实践。这些机制共同构成了RD

amy_mhd的博客 158

传智播客 EJB3 学习笔记2

1数据源: 详细定义    MSSQLDS    jdbc:sqlserver://localhost:1433;DatabaseName=EJB    com.microsoft.sqlserver.jdbc.SQLServerDriver    sa    123456 2 配置实体bean@SuppressWarnings("serial")@Entity@Table

samttsch的专栏 478

【OpenClaw从入门到精通】第24篇:OpenClaw Skill商业化实战指南——从0开发付费技能,在ClawHub变现(2026实测版)

本文聚焦OpenClaw Skill商业化的全流程落地,基于2026年生态现状、公开行业报告及开发者指南,拆解付费Skill的市场机会、商业模式、技术实现、发布运营及避坑要点。核心围绕“Freemium API Backend”主流路径,通过虚拟但贴合真实场景的“金融研报复现”案例,提供从需求分析、定价设计到代码开发、ClawHub上架的完整实操方案。文中包含可直接复用的代码片段、执行结果演示及流程图解,既满足新手快速入门的需求,也为进阶开发者提供商业化落地的关键思路,帮助读者抓住AI Agent早期红利。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1090

VxWorks系列 快速导航

Vxworks系列快速阅览导航

Mr.Sugarcane 1315

JBoss部属和EJB调用-EJB3.0入门经典学习笔记(2)

目录   1. 在JBoss中部属   2. 在Tomcat中调用EJB   3. 在JBoss中调用EJB 1. 在JBoss中部属   1) JBoss的配置目录     路径D:\Java\jboss6\server下有3个子目录:minimial、default 和all,即为部属目录,分别表示3种不同配置,需要加载的JBoss服务不一样。启动JBoss时,默认加载de...

weixin_34203832的博客 185

数字滤波器应用介绍

线性滤波器FIR ,会引起恒定延迟,通过补零的方式补偿非线性滤波器IIR,会引起频率相关的延迟,通过零相位延迟filtfilt补偿从信号中去除不需要的频谱时,通过滤波和补偿实现。如果需要去除的频率与采样率相差甚远,比如4kHz 与100Hz, 可通过 低通滤波->补偿->降采样–> 滤波 补偿 -->上采样还原的方法。*降采样前一定要先低通滤波为了防止混叠。

weixin_39107270的博客 275

JavaEE5学习笔记07-Web层与EJB集成总结(4):Struts2与EJB集成

 Struts2+EJB+JBoss的集成Demo 因为Struts2仅仅是一个MVC框架,在JavaEE企业级开发中不像JavaEE标准那么吃香,很多东西得自己来做。这就是为什么很多EJB项目的Web前端都是JSF或者直接就是JSP+Servlet,而不是Struts2了。 新建一个Struts2的项目,之后先看Action代码 package action;   import ...

suhuanzheng7784877的专栏 177

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Java学习笔记-《Java程序员面试宝典》-第5章Java Web-5.2J2EE与EJB(5.2.5-5.2.10)

5.2.5 EJB有哪些生命周期Stateless Session Bean的声明周期是由容器决定的,当客户端发出请求要建立一个Bean的实例时,EJB容器并不一定要创建一个新的Bean实例来供客户端调用,如果当前有Stateless Session Bean的实例能够满足客户的需求,就不会去创建新的实例。对于Stateless Session Bean来说,实例的创建和删除都是由EJB容器来控制的

qq_28814687的博客 250

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

EJB2移植到EJB3的一些实践

众所周知EJB被人病诟的很大的一个缺陷就是它复杂的配置,和奇异的编程模型。所以EJB3的推出减小了这些毛病, 但是Rod Johnson似乎还是不满意:) 关于2个标准的对比已经有很多文章和书籍了,我这里不再赘述。我只想说的是自己经历到的移植的经验,希望和大家分享。主要是session bean的移植。首先是开发EJB配置的模式由于EJB3把配置由descriptor移到了

卢声远 Shengyuan Lu的专栏 1818

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

EJB3.0和EJB2.1有哪些区别

本文从实战角度比较EJB2和EJB3的异同,通过深入剖析揭示EJB3.0的真相,EJB3.0真是带来简化?还是一种表象上的简化?EJB3.0真的变得轻量了,还是披着羊皮的狼?  EJB编程模型的简化  首先,EJB3简化的一个主要表现是:在EJB3中,一个EJB不再象EJB2中需要两个接口一个Bean实现类,虽然我们以前使用JBuilder这样可视化开发工具自动生成了EJB2的这三个类,好

philip的专栏 3401

Weblogic EJB 学习笔记

EJB 学习笔记1、ejb 基础知识(1) 无状态会话bean    不保存客户机的会话状态    优点:使用小量的实例即可满足大量的客户。每个实例都没有标识,相互之间是等价的。    等?的无状态会话bean:  多次和一次调用的结果和效应相同。        在集群中可以负载均衡 a 机器失败,可以在b机器上重试    非等?的无状态会话bean: 如:计数器        不能自动因故障而进

xlh日记本 1563

EJB2.X已死??

YUGS:EJB大势已去,指的是EJB2.x的那种重量级的EJB架构技术,而不是指全新的POJO based的EJB3.0。 其实围绕 EJB这个话题,已经讨论的口水都干了,我在2002年的时候还是相当推崇EJB的,但是在当年的EJB项目中已经深切体会到了EJB的致命缺陷。到 2003年基本上对EJB持一个谨慎的态度,即支持Session Bean,反对Entity Bean,然而仅仅就是这种

不厚道青蛙之焦油潭 2296

前进:从EJB 2.1到EJB 3.0

 前进:从EJB 2.1到EJB 3.0           在开始讨论怎样从EJB 2.1迁移到EJB 3.0之前,有必要先了解一下迁移之后将会得到什么:主要来说,EJB 3.0减少了在创建EJB时所需的类、接口、部署描述符的数量。EJB 3.0通过用纯旧式Java对象(POJO)取代抽象bean类,用纯旧式Java接口(POJI)取代组件与主接口(Component & Hom

谢启东的专栏 1035

EJB2.1 EJB3.0 Spring

   Java annotations are the key behind EJB 3.0, which ties POJO services, POJO persistence, and dependency injection altogether into a complete enterprise middleware solution. EJB 3.0s annota

持续改进 2027

全面研读 EJB 2.0

发信人: twotwo (般若菠萝蜜), 信区: java 标  题: 全面研读 EJB 2.0 发信站: 听雨轩 (2001年08月16日10:58:06 星期四), 站内信件   JB 2.0 规范不仅仅是一个新的阶段性发行版,它加入了许多引人注目的变 动,包括 CMP 组件模型中的一些变动和一种新的 bean 类型,它们将增强您在开 发应用程序时的灵活性和可移植性。请

luco的专栏 1664

EJB学习笔记

J2EE1 J2ee概述 J2ee是企业级的计算平台,它为分布式和基于组件的软件开发提供了一个“操作系统” Ant是什么工具?? EJB:什么是EJB?是一种服务器端组件结构,简化了开发分布式企业级程序的过程类比:应用服务器是一个CD播放器,而组件是一张cd,因为有了cd标准,任何cd播放器都能播放cdEJB分为两个部分:1、  规范列出了组件与应用服务器之间相互约定的规则2、  一组java接口

Macroyan的专栏 1859

EJB工作原理学习笔记!

EJB工作原理学习笔记1 RMI工作原理2 websphere实现3 weblogic实现4 理解体会1:RMI工作原理首先说说RMI的工作原理,因为EJB毕竟是基于RMI的嘛。废话就不多讲了,RMI的本质就是实现在不同JVM之间的调用它的实现方法就是在两个JVM中各开一个Stub和Skeleton,二者通过socket通信来实现参数和返回值的传递。 有关RMI的例子代码网上可以找

李晓辉的Blog 1845
上一篇: Blief
下一篇: 一篇关于session的好文
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值