排行榜 -

您的位置:首页 > ppt下载 > PPT课件 > 课件PPT > ejb ppt

ejb ppt下载

素材大小:
1002 KB
素材授权:
免费下载
素材格式:
.ppt
素材上传:
lipeier
上传时间:
2018-09-14 16:58:35
素材编号:
211394
素材类别:
课件PPT
网友评分:

素材预览

ejb ppt

这是ejb ppt,包括了项目框架,持久层的开发,业务层的开发,JNDI及EJB的调用过程,各层之间的调用等内容,欢迎点击下载。

ejb ppt是由红软PPT免费下载网推荐的一款课件PPT类型的PowerPoint.

项目EJB培训蔡海江目录项目框架持久层的开发业务层的开发 JNDI及EJB的调用过程各层之间的调用 项目框架 MSP项目采用的框架:Struts2+EJB3 持久层(DAO):Entity+SessionBean 业务层(Service):SessionBean 表现层:Struts2(加上Ext)项目框架项目框架持久层和业务层的SessionBean通常使用无状态的SessionBean。在开发SessionBean时,Local和Remote一起提供。目录项目框架持久层的开发业务层的开发 JNDI及EJB的调用过程各层之间的调用 持久层的开发数据库连接配置 Entity的编写 DAO的编写 EJB的事务数据库连接配置数据源的配置 将数据源配置文件oracle-ds.xml部署到JBoss服务器的deploy目录下。数据库连接配置 persistence.xml配置 EJB访问数据库,需要persistence.xml配置文件,该文件放在EJB jar包的META-INF目录下。 Entity的编写通常情况下,一个Entity对应数据库的一个表。Entity跟普通的POJO类似。 Entity可以手动编写,也可以借助工具自动生成。(自动生成,参考文档:myeclipse7.1自动生成EJB3 Entity.doc) 由于Entity通常会作为参数或返回值,在各层直接进行数据传递,所以Entity需要实现序列化接口Serializable Entit类的命名方式,通常跟数据库表的名称类似,但首字母大写。 Entity的编写 Entity的编写 DAO的编写 DAO负责对数据库的操作,通常需要提供查、删、改等操作接口。通常使用无状态的SessionBean。 DAO是通过EntityManager提供的API来操作数据库的。 DAO采用面向接口编程的方式。提供一个接口和一个实现类。 DAO命名方式:接口的名称以Dao为后缀,实现类的名称以DaoImpl为后缀。 DAO的编写 DAO的编写 EJB的事务 EJB3事务管理分为两种:CMT(容器管理事务)和BMT(Bean管理事务),只有SessionBean和MessageDrivenBean才支持CMT和BMT。SessionBean默认是受CMT管理,当然也可以在代码中通过注解显示声明: @TransactionManagement(TransactionManagementType.CONTAINER) 关于EJB3事务的详细说明,请参考文档:EJB3事务管理目录项目框架持久层的开发业务层的开发 JNDI及EJB的调用过程各层之间的调用 业务层的开发业务层通常也采用无状态的SessionBean 业务层通过调用持久层访问数据,并进行业务处理。业务层也采用面向接口编程的方式,提供一个接口和一个实现类。 Service命名方式:接口的名称以Mgr(或Service)为后缀,实现类的名称以MgrBean(或ServiceImpl)为后缀。业务层的开发业务层的开发业务层的开发有时候需要在业务层进行事务处理,具体请参考文档:EJB3事务管理目录项目框架持久层的开发业务层的开发 JNDI及EJB的调用过程各层之间的调用 JNDI JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),是一个为Java应用程序提供命名服务的应用程序编程接口(API)。它为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口。JNDI包含了大量的命名和目录服务。命名服务是一种服务,它提供了为给定的数据集创建一个标准名字的能力。它允许把名称同Java对象或资源关联起来,而不必指出对象或资源的物理ID。这类似于字典结构(或者是Java的map结构),该结构中键映射到值。例如在Internet上的域名服务(domain naming service,DNS)就是提供将域名映射到IP地址的命名服务。 JNDI 其实所有的命名服务都提供DNS这种基本功能,即一个系统向命名服务注册,命名服务提供一个值到另一个值的映射。然后,另外一个系统访问命名服务就可以取得映射信息。 目录服务是一种特殊类型的数据库,与SQL Server、Oracle等关系数据库管理系统相反,构造目录服务的目的是为了处理基于行为的事务,并且使用一种关系信息模型。目录服务将命名服务的概念进一步引申为提供具有层次结构的信息库,这一信息库除了包含一对一的关系外,还有信息的层次结构。对目录服务而言,这种层次结构通常用于优化搜索操作,并且也可以按实际情况进行分布或者跨网络复制。 一个目录服务通常拥有一个命名服务(但是一个命名服务不必具有一个目录服务)。如电话簿就是一个典型的目录服务,一般先在电话簿里找到相关的人名,再找到这个人的电话号码。 JNDI J2EE容器分为Servlet容器和EJB容器,例如Tomcat就是一个Servlet容器,WebLogic,WebSphere Application Server,JBoss就是EJB容器。他们都提供JNDI的支持,你可以把任何资源(如DataSource、JMS、Queue、Mail甚至是URL资源)都绑定到JNDI上下文中,这样可以降低组件间的耦合性。通常的Servlet容器(如Tomcat)中的JNDI资源只能被容器中的程序查到、使用,而不能在容器外引用,也就是只能被容器所属进程所用;而EJB容器中的JNDI资源却可以在容器外,可以是本机不同的JVM,或者是另一台机器上的程序查找到并透明使用,因为EJB本来就是要为分布式服务的。EJB容器中的JNDI资源可以通过JNP、RMI、IIOP、T3或文件引用的方式发布出去。每种EJB容器都会用某些JNDI协议,如JNP 是 JBOSS 提供的JNDI协议,IIOP 是 WebSphere 提供的JNDI协议, T3 是 Weblogic 提供的 JNDI 协议。 JNDI 在启动JBoss服务器时,通过控制台的信息,可以知道,JBoss是通过RMI发布他的JNDI资源的,其jnpPort为1099。 JNDI中包括5个包。 · javax.naming:主要用于命名操作,它包含了命名服务的类和接口,该包定义了Context接口和InitialContext类; · javax.naming.directory:主要用于目录操作,它定义了DirContext接口和InitialDir- Context类; · javax.naming.event:在命名目录服务器中请求事件通知; · javax.naming.ldap:提供LDAP支持; · javax.naming.spi:允许动态插入不同实现,为不同命名目录服务供应商的开发人员提供开发和实现的途径,以便应用程序通过JNDI可以访问相关服务。 JNDI 常用的JNDI操作如下: · void bind(String sName,Object object),绑定:把名称同对象关联的过程。 · void rebind(String sName,Object object),重新绑定:用来把对象同一个已经存在的名称重新绑定。一般使用rebind()而不使用bind(),因为当有重名的时候rebind()不会出现异常,而bind()会报异常。 · void unbind(String sName),释放:用来把对象从目录中释放出来。 · void lookup(String sName,Object object),查找:返回目录总的一个对象。 · void rename(String sOldName,String sNewName),重命名:用来修改对象名称绑定的名称。 · NamingEnumeration listBindings(String sName),清单:返回绑定在特定上下文中指定属性名对象的清单列表,它返回名字、类和对象本身,它用于那些需要对对象进行实际操作的应用。通过JNDI获取EJB 对于使用EJB的系统,要使用EJB的SessionBean,需要将EJB打成jar包(或者ear包),部署到EJB服务器(本项目采用JBoss服务器),然后在需要调用EJB的地方,通过JNDI获取SessionBean对象,从而调用SessionBean提供的方法。如果调用EJB的客户端和EJB同属于一个JVM,则可以使用local或者remote方式,但考虑到性能方面,推荐用local方式,如果不属于同一个JVM,则只能用remote方式。如果要使用JUnit作为客户端,测试调用EJB,则被测试的EJB需要提供remote接口,而不能使用local接口,因为JUnit和被测试的EJB处在不同的JVM中。通过JNDI获取EJB 调用EJB的代码和被调用的EJB处在同一个JVM时如果EJB以jar包的形式部署: InitialContext ctx = new InitialContext(); KeyWordDao dao = (KeyWordDao)ctx.lookup(“KeyWordDaoImpl/remote”); 如果EJB的jar包最终以ear包的形式部署,假如ear包为MSP2.ear: InitialContext ctx = new InitialContext(); KeyWordDao dao = (KeyWordDao)ctx.lookup(“MSP2/KeyWordDaoImpl/remote”); 通过JNDI获取EJB 调用EJB的代码和被调用的EJB处在不同的JVM时 Properties props = new Properties(); props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory"); props.setProperty("java.naming.provider.url", "localhost:1099"); props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces"); InitialContext ctx = new InitialContext(props); KeyWordDao dao = (KeyWordDao)ctx.lookup(“KeyWordDaoImpl/remote”); 同EJB组件系统交互的客户类型分布式对象客户调用分布式对象的具体过程:客户调用存根(stub),即为客户端提供的代理对象作用:对客户屏蔽网络通信细节,如socket建立与通信等过程 Stub通过网络与服务器端的代理对象—骨架(skeleton)通信作用:屏蔽网络通信细节,参数类型转换骨架将具体的客户调用委派给合适的分布式对象实现。存根和服务器端的对象都实现了同一接口(远程接口)分布式对象技术:CORBA(OMG)、DCOM(MS)、Java RMI-IIOP(Sun) 分布式对象 RMI Communication Model RMI Communication Model 远程接口( Remote Interface )客户不直接和ejb或者ejb对象打交道 Ejb有些什么方法,只能看远程接口里写了多少方法远程接口是ejb的对外表现形式.远程接口里的业务方法全部可以通过网络远程调用 Remote Interface包含了EJB的所有商业逻辑操作客户端利用Remote Stub可调用EJB的方法 Remote Stub和Remote Skeleton进行方法调用的通信 Remote Skeleton直接调用EJB上的方法 EJB Object和Remote Interface EJB Object运行在EJB容器中,EJB容器通过Bean提供的方法来管理Bean 当客户端需要调用EJB时,并不直接与Bean类提供的方法打交道,EJB Object充当了Bean类实例的代理 EJB容器是客户端和Bean之间的中间层,该中间层负责管理一个能处理底层网络通信的对象 EJB Object复制了Bean类的商业方法,并代表Bean类来响应客户端的调用 Remote Interface负责定义客户端调用EJB Object的接口,EJB Object首先要实现Remote Interface接口中定义的方法 Remote Interface必须符合RMI-IIOP的参数调用原则,包括元数据类型/序列化对象和RMI-IIOP远程对象等 Home Interface 客户端可以使用Home Interface完成下列功能管理EJB的生命周期建立、删除和查找EJB 当EJB发布时, Home Interface Stub即绑定在JNDI上 EJB的调用目录项目框架持久层的开发业务层的开发 JNDI及EJB的调用过程各层之间的调用 各层之间的调用业务层调用持久层业务层调用持久层,可以用Local或Remote方式,通常采用Local方式。表现层调用业务层表现层调用业务层,可以用Local或Remote方式,通常采用Remote方式。业务层调用持久层表现层调用业务层表现层调用业务层各层之间的调用各层之间的调用除了前面介绍的通过jndi查找的方式获取SessionBean之外,还可以用@EJB注解的方式注入SessionBean。参考文档 EJB3.0入门经典.pdf myeclipse7.1自动生成EJB3 Entity.doc EJB3事务管理.doc

下载地址

推荐PPT

PPT分类Classification

Copyright:2009-2015 rsdown.cn Corporation,All Rights Reserved 红软PPT免费下载网版权所有

粤ICP备14102101号