ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:21.19KB ,
资源ID:15280174      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-15280174.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(EJB30学习笔记.docx)为本站会员(b****7)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

EJB30学习笔记.docx

1、EJB30学习笔记1,EJB中有三种bean: 1)会话bean(session bean):负责与客户端交互,是编写业务逻辑的地方,在会话bean中可以通过jdbc直接操作数据库,但大多数情况下都是通过尸体bean来完成对数据库的操作; 2)实体bean(entity bean):它实际上属于java持久化规范(简称JPA)里的技术,JPA的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate,TopLink等ORM框架各自为营的局面; 3)消息驱动(message-driven bean):它是专门用于异步处理java消息的组件,具有处理大量并发消息的能力;2

2、,会话bean分为无状态会话bean和有状态会话bean: 1)无状态会话bean:平常,我们使用最多的是无状态bean,因为它的bean示例可供多个用户使用,所以它的性能比有状态bean高【正因为一个bean示例被多个用户使用,那么,前一个用户设置的值有可能被后一个用户所修改,所以它无法正确保存某个用户设置的值,因此是无状态的; 2)有状态会话bean:有状态bean平常使用的并不多,因为它的一个bean实例只供一个用户使用,所以性能开销比较大,正因为它的实例只被一个用户使用,那么用户设置的值是不会被其他用户所修改的,所以可以正确保存用户设置的值,因此是有状态的;3,开发EJB的工具:Ecl

3、ipse IDE for Java EE 开发EJB依赖的jar文件:可以在jboss安装路径下的client目录下找到,通常会把client目录下的所有jar文件添加到项目的类路径下;4,EJB的发布过程就是一个拷贝的过程:将jar文件拷贝到:jboss安装目录-server-default-deploy下面;就ok了;第三讲:开发EJB的客户端1,因为EJB在软件分层结构上属于业务层,通常它需要被客户端所调用:常用的客户端有j2se,web应用,j2me;2,我们可以通过一个属性文件来设置JNDI的上下文信息;在项目的类路径下简历jndi的属性文件,jndi.properties;也可以在

4、src目录下建立,也同样可以编译到类路径下面;3,jndi文件的内容如下: java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory java.naming.provider.url=localhost:1099 .4,当写完jndi.properties文件后,客户端下面代码:InitialContext ctx = new InitialContext();构造函数就会在类路径下找相应的属性配置文件;自动加载;第四讲:把jboss集成到eclipse中1,window-show view - other - Se

5、rver - servers 然后再控制台上出现了servers视图,我们点击server,空白处右键 new -server - .第五讲:通过ANT提高EJB应用的开发效率1,为了提高开发效率,大部分企业在ejb开发中引入ant,来进行操作;2,通过ant完成项目的编译,打包,发布,解发布;在eclipse中已经集成了ant工具;3,在项目根目录底下新建ant的配置文件build.xml;4,ant配置详解: /-这句话表示定义一个属性变量;value为属性值 /-这句话的意思是引入系统的环境变量,即系统环境变量-系统变量; /-这里env指向系统变量,去里面的jboss配置项JBOSS_

6、HOME; 上面和在java中定义变量是一样的; / -包含所有的jboss的jar包 /-这项工作的目的是创建路径 /refid表示引用id; /-卸载EJB就是直接将jar文件给删除就行了;第六讲:开发具有本地接口的无状态bean1,之前,我们介绍过远程接口,在这里,我们需要了解一下通过远程接口调用ejb的过程,首先,客户端与ejb之间建立socket通信,在通信管道上它们之间需要来回发送IIOP协议消息,因为数据要在网络上进行传输,存放数据的java对象必须要进行序列化; 客户端 EJB在这个过程中我们看到,有网络通信协议的开销,协议解析的开销,对象序列化的开销,因为ejb是分布式技术,

7、它允许客户端与ejb应用不在同一台机器上,所以这些性能开销是必然的,但是在实际生产中,我们不可避免这种客户端情况:客户端和ejb在同一个jboss中;为了解决这个问题,ejb采用如下方案:当客户端和ejb在同一个JVM内运行的时候,我们调用本地接口,否则只能调用远程接口。谈到这里,有同学会问什么情况下客户端与EJB应用是在同一个JVM的呢?我们可以这样简单的理解,只要客户端与ejb发布在同一个jboss内,我们就认为他们在同一个JVM内;第七讲:开发有状态bean1,bean实例的两种管理技术: 1)无状态bean使用实例池技术管理bean;所有用户共用一个bean;如果用户在实例池中取得一个

8、对象的时候,那么这个对象是不能被其他对象所用的,只有等该用户用完了,才可以用;实例池就是里面初始化的几个对象而已;用最小的对象数,来为用户提供服务; 2)有状态bean使用激活(activation)管理bean -当一个bean超过一段时间不用时,系统将这个bean序列化到磁盘上,当在真个会话时间内,用户再次访问该bean,则将该bean加载到内存中,如果超过会话时间,则清楚该序列化bean;其中序列化到磁盘上的过程叫做钝化,从磁盘加载到内存中的过程被称为激活;给每个用户创建一个新的bean;第八讲:通过注解方式注入并使用其他EJB或者服务1,EJB之间的互相调用: 如果要在一个ejb中调用

9、另一个ejb的话,有两种方法:第一种采用jndi查找法,另一种方法就是依赖注入,即注解; 通过第一种方法例子: Stateless Remote(HelloWorld.class) Local(HelloWorld.class) public class HelloWorldBean implements HelloWorld,HelloWorldLocal public String sayHello(String name) try InitialContext ctx = new InitialContext(); Other other = (Other)ctx.lookup(Othe

10、rBean/local); return name+说:你好,+other.sayMe(); catch(NamingException e) e.printStackTrace(); return null; 通过第二种方法例子: public class HelloWorldBean implements HelloWorld,HelloWorldLocal EJB Other other; public String sayHello(String name) return name+说:您好,+other.sayMe(); /如果多个EJB实现了同一个接口,那么我们可以采用如下方式制定

11、具体调用哪一个EJB; EJB(beanName = OtherBean) Other other; /beanName为具体的接口实现类名称; 也可以注入数据源: Resource(mappedName=java:xxx) DataSource dataSource; /mappedName对应于数据源的jndi名称;第九讲:配置jboss数据源1,数据源可以减少数据库连接对象的创建数量;2,数据源配置文件必须以-ds包含在配置文件名中:例如:mysql-ds.xml; -ds时jboss才认为它是一个数据源;jboss的数据源配置模板在jboss安装目录下的sample-jca -找 .第

12、十讲:开发单表映射的实体bean1,实体bean-它属于java持久化规范(简称JPA)里的技术,实体bean通过元数据在javabean和数据库表之间建立起映射关系,然后java程序员就可以随心所欲的使用面向对象的编程思想来操纵数据库。JPA的出现主要是为了简化现有的持久化开发工作和整合ORM技术,目前实现的JPA规范的主流产品有Hibernate,TopLink和OpenJPA,在jboss中采用了Hibernate作为其持久化实现产品;2,添加JPA的配置文件persistence.xml -根据JPA规范的要求:在实体bean应用中,我们需要在应用的类路径下的META-INF目录加入持

13、久化配置文件persistence.xml3,实体bean必须要保留一个无参的构造函数,这是JPA规范所规定的; public Person() public Person(String name) this.name=name; 4,数据传输过程中,是需要序列化的;5,实体bean: . Entity Table(name=person) public class Person implements Serializable private Integer id; private String name; Id Column(name=id) GeneratedValue(strategy=

14、GenerationType.AUTO) public Integer getId() return id; public void setId(Integer id) this.id=id; Column(name=name,length=20,nullable=false) public String getName() return name; public void setName(String name) this.name=name; 第十一讲:开发消息驱动1,java中如果一个对象需要通过网络传输,则必须实现序列化接口,否则是错误的;2,java消息服务(Java Message

15、 Service,简称JMS)是用于访问企业消息系统的开发商中立的API。企业消息系统可以协助应用软件通过网络进行消息交互;JMS的编程过程很简单,概括为:应用程序A发送一条消息到消息服务器的某个目的地(Destination),然后消息服务器把消息转发给应用程序B。因为应用程序A和应用程序B没有直接的代码关联,所以两者实现了解耦;3,消息传递系统的中心就是消息。一条消息由三个部分组成:头(header),属性(property)和主题(body)。消息有下面几种类型,它们都是派生自Message接口。 StreamMessage:一种主体中包含Java基元值流的消息。其填充和读取均按顺序进行

16、; MapMessage:一种主体中包含一组名-值对的消息,没有定义条目顺序; TextMessage:一种主体中包含Java字符串的消息(例如,XML消息); ObjectMessage:一种主体中包含序列化Java对象的消息; BytesMessage:一种主体中包含连续字节流的消息;4,消息的传递模型: JMS支持两种消息传递模型:点对点(point-to-point,简称PTP)和发布/订阅(publish/subscribe,简称pub/sub).这两种消息传递模型非常相似,但有以下区别: PTP消息传递模型规定了一条消息只能传递给一个接收方。采用javax.jms.Queue表示;

17、 pub/sub消息传递模型允许一条消息传递给多个接收方。采用javax.jms.Topic表示,这两种模型都通过扩展公共基类来实现。5,配置目标地址:开始JMS编程前,我们需要先配置消息到达的目标地址(Destination),因为只有目标地址存在了,我们才能发送消息到这个地址。由于每个应用服务器关于目标地址的配置方式都有所不同,下面以jboss为例,配置一个queue类型的目标地址。 queue/foshanshop jboss.mq.service=DestionManager jboss使用一个XML文件配置队列地址,文件的取名格式遵守-service.xml 属性指定了该目标地址的全

18、局JNDI名称,如果你不指定JNDIName属性,jboss会为你生成一个默认的全局JNDI,其名称由 queue+/+目标地址名称组成,另外在任何队列或主题被部署之前,应用服务器必须先部署Destination Manager Mbean,所以我们通过节点声明这一依赖;第十二讲:开发EJB容器模型的WEB服务1,Web服务也是一种分布式技术,它与EJB最大的不同是,Web服务属于行业规范,可以跨平台及语言,而EJB属于Java平台的规范尽管理论上可以跨平台,但实现起来还是比较复杂的,所以其应用范围局限于java平台,看上去两者好像是互相竞争的关系,其实不是,它们两者的偏重点不一样,Web服务偏重的是这个系统对外能提供什么功能,这是web服务的关注点,对于怎样组装这个硬盘,怎样构造这些小零件,web服务并不关心但这些却是EJB所关注的。 JavaEE为Web service提供了两种不同的编程模型;EJB容器模型及Web容器模型,这里将以最新的JAX-WS2.X规范(Java API for XML-based Web Service)介绍webservice的开发; WebService(targetNamespace=, name=HelloWorld, serviceName=HelloWorldService)

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2