您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > ejbnote(培训笔记)
第一章EJBEJBEJBEJB(Enterprise(Enterprise(Enterprise(EnterpriseJavaJavaJavaJavaBean)Bean)Bean)Bean)----------------------------------------------------------------------------------------------------------------------一,,,,什么是EJBEJBEJBEJB????定义:它是一个标准,用于开发部署服务器端的分布式应用的组件框架.企业应用的三个发展阶段:1.Host/Terminal主机/终端(只接受请求和显示结果)优点:安全,性能高缺点:昂贵,维护困难(一般在3000万美元左右)2.Client/Server客户机/服务器客户机分为胖客户机和瘦客户机两种胖客户机C/S结构瘦客户机B/S结构(Browser/WEB服务器)3.Multi-layered多层布局结构客户层中间层数据库表示层+业务层+数据持久层2,3优点:开方平台,价格便宜,维护方便,扩展性强缺点:存在一些安全隐患二,,,,什么是组件架构????企业级程序:基础服务+应用逻辑企业级程序概念:1.围绕商业目的2.表示层,基于网络连接在一起,分层,分布应用逻辑:业务流程基础服务:事务,安全,并发,缓存,持久化,公用的服务基础服务+应用逻辑||容器(服务器开发商)组件(开发人员)组件架构:协议,接口(Sun提供),实现容器和组件接合到一起容器提供基础服务,组件负责业务逻辑处理,组件在容器中运行,容器依照相关配置文件或标准来调用组件,并为组件提供中间件服务.三,,,,为什么要用EJBEJBEJBEJB????EJB能为我们提供中间件服务RemoteMethodInvocations(RMI)远程方法调用(跨越JVM,网络,实现一个对象调用另一个对象的方法)LoadBalancing负载均衡(如多个Tomcat组成一个Server集群)第三章EnterpriseEnterpriseEnterpriseEnterpriseSessionSessionSessionSessionBeanBeanBeanBean----------------------------------------------------------------------------------------------------------------------一,,,,什么是会话BeanBeanBeanBean????1.用来建模业务流程的EJB中的一种类型.2.会话Bean的生命周期很短(存在时间),主要取决于客户端与会话Bean的调用的时间长度.二,,,,会话BeanBeanBeanBean的类型1.无状态会话Bean.1).一次方法(单方法)完成一个相对完整的业务处理.2).不保存客户端的状态.(可以有属性,但属性不保存(维护)客户端的状态)3).无状态会话Bean可以非常方便的构造pooling(池)4).无状态会话Bean的生命周期分两个阶段:不存在状态和就绪状态.1.调用缺省的构造器构造一个实例2.如果有一来流入则注入相应的资源3.如果有@PostConstruct标注的方法,则完成初始化.4.EJB实例处于就绪状态可以接收调用.5.当容器删除实例之前如果有@PreDestroy标注的方法则执行.(完成资源的释放)2.有状态会话Bean.1).多次方法调用完成一个相对完整的业务处理过程.2).必需保存客户端的状态.例:ShoppingCartBean3).有状态会话Bean不方便构造Pooling,需要处理状态的钝化和激活.3.什么是Session的Pooling?EJB容器会在容器起动的时候先实例化多个会话Bean的实例,构造一个Pooling(池).需要配置当客户端调用会话Bean的时候EJB容器会从Pooing中挑选一 隹障械氖道 突Ф说饔 4.会话Bean以及其他的任何类型的EJBBean类型,一个实例只会服务于一个客户(单线程),不要在Bean类中编写多线程序.----------------------------------------------------------------------------------------------------------------------EJB容器负责提供会话Bean的运行环境并且创建Bean的实例(调用Bean的缺省构造器).初始化及销毁Bean的实例.EJB容器还要在相应的生命周期阶段回调相应的回调方法.注意:对于无状态会话Bean必需提供一个缺省的构造器----------------------------------------------------------------------------------------------------------------------@PostConstruct标注:1.用在方法之前2.标注的方法可定义在Bean类里面,也可以定义在单独的类里(方法需加参数InvocationContext).EJBBean类使用@interceptors(回调方法名.class)3.标注的方法名称不作要求.4.标注的方法不能运行事物环境.怎样删除一个Bean?1.容器可以自动删除.2.客户端主动删除.客户端调用一个方法:@Remove即使客户端调用了这个方法EJB容器也不真正的删除该实例.钝化(Swapout):有状态会话Bean的实例保存有客户端状态,当容器需要使用该实例为其他客户服务时,需要将客户端状态保存到持久化设备(硬盘).容器按照LRU(最近最少被使用)算法将Bean以前的状态钝化,@PrePassivate标注:当EJB容器钝化EJB实例状态之前被执行,主要是用于默认的钝化规则不起作用的情况.默认情况下EJB容器会自动保存状态(钝化)的情况,需要满足以下条件(规则和JAVA序列化一样):*类型为八大基本类型,非持久化*非持久化对象*业务接口的引用被自动保存*会话Bean的上下文,事务处理对象,实体管理器,实体管理器工厂,定时对象,JNDI的命名上下文.对于一些不能自动钝化或保存的对象,如数据库连接,Socket套接字等,此时用@PrePassivate来作钝化(释放连接)激活(Swapin):EJB容器需要恢复实例之前的状态,需要从持久化设备(硬盘)读取钝化时保存的状态并将状态设置到实例上.@PostActivate标注:用来重新获得资源(默认的钝化规则不支持的资源)+有状态会话Bean的生命周期--LifecycleofStatefulSessionBeanv3.01.不存在状态2.就绪状态1.方法不在事务上下文环境下运行,默认情况下运行在EJB容器中的EJB实例其业务方法都会有事务的支持.2.支持事务(如果方法需要事务支持,就处于这种状态,此时SessionBean需要实现同步接口,用来保证当事务失败时可以恢复原来状态)afterBegin():在事务刚刚起用时,容器调用该方法,用来保存现场.beforeCompletion()afterCompletion(true):在事务提交时被容器调用,如果参数值为false表示事务提交失败,此时要处理状态的恢复.3.钝化状态======================================||钝化只有可能在无事务上下文的条件下运行||======================================第四章SessionSessionSessionSessionBeanBeanBeanBeanWebWebWebWebServicesServicesServicesServices--------将会话BeanBeanBeanBean发布为WebWebWebWeb服务----------------------------------------------------------------------------------------------------------------------一.WEB.WEB.WEB.WEB服务的基本知识((((理解))))1.什么是WEB服务?1.程序间以一种标准的方式进行通讯(与程序的开发语言,运行的操作系统,硬件平台,网络关系无关)2.用SOAP,WSDL等协议通讯,以XML文档方式进行数据交换的网络应用程序.2.WEB服务的基本原理1.三个角色+服务提供者:[1]实现服务,将服务用WSDL语言进行描述,并且可以将这个描述发布到服务注册器上.(需要使用UDDI的协议和API).将服务打包并部署到WEB服务器上.[3]接收请求处理结果,通过SOAP将结果返回给请求者.+服务注册器:提供服务的注册,使服务请求者可以查询并获取服务的描述文件(WSDL)+服务请求者:[2]使用服务提供者提供的服务.通过服务注册器(UDDI服务器)来获得WSDL文档.再使用WSDL文档将请求绑定到SOAP,调用服务提供者的服务.--------------------------------------------------------------------服务注册器/\/\WSDL+UDDI/\WSDL+UDDI/\/SOAP\服务请求者----------------------服务提供者---------------------------------------------------------------------+UDDI服务器:统一描述发现集成服务器2WSDL语言(本质上是XML文档)WEB服务描述语言(WebServicesDescribtionLanguage):1).指定服务的内容(方法,参数,返回值,数据类型)2).描述如何绑定3).提供访问服务的地址.+XXXX.wsdl主要标签:type,message,operation,portType来描述服务的内容.binding描述服务如何绑定.service描述服务调用的地址.+SOAP简单对象询问协议定义:WEB服务的底层传输协议,服务的请求者,将请求绑定到该协议之上.服务的提供者返回的数据也通过该协议进行传输.它是借助于HTTP协议来传输数据.能穿透防火墙.结构:也是一个XML文档信封:|-------------------------|||------------------||||Head(可选)||||------------------||||||||Body(必需)||||------------------||--------------------------|+如何将无状态会话Bean发布为WEB服务,只有无状态会话Bean可以发布为WEB服务?1.两种方式编程(1).先写Java类,让容器生成WSDL.(2).先写WSDL,再用WSDL生成Java类.2.编程步骤@WebService标注该会话Bean发布为Web服务.serviceName:标注服务的名称.@WebMethod标注该方法应该发布到Web服务描述文件之中.如果所有方法都没加该标注,则所有的方法都会发布到Web服务描述文件中.*******************************************************************************一发布WEB服务一般步骤:1.编写EJB(无状态会话Bean)2.给EJB添加WEB服务相关的标注(@WebService,@WebMethod)3.部署(容器生成WSDL)4.测试WEB服务(利用工具,如终端管理工具)二编写WEB服务客户端1.利用WSDL文档生成本地代理2.利用本地代理调用WEB服务************************************
本文标题:ejbnote(培训笔记)
链接地址:https://www.777doc.com/doc-957806 .html