[转载]EJB项目开发应用

EJB项目开发应用
第一章开发应用之前
§1.1对技术的心态
学习一门技术,一种语言要有恒心,不要看身边的人学Java多了,就学Java,C#的人 多了就改投C#,在学习它们之前,自己先看一些简单的介绍,其实我个人认为当前流行的语言大家最好都能简单的过一遍(大概一门语言花一周左右的时间拼一 下),然后根据自我评估决定选择适合自己的语言,以及合适的入门书籍和开发工具。
一个开发人员,特别是成长中的开发人员,要有广阔的胸襟,要汲取 百家之长,海纳百川。特别对于程序员要对各种的语言的长处,尽所能将其贯通于实际的开发中,如将Delphi的VCL关于数据库操作方面的技术原理就可以 的应用在Java程序中,组成一个灵活的数据库访问组件,可以应用在自定义表单等。
对待技术要发展的眼光,一些在别的语言所具有的优点,会被不断的在Java中得到应用,C++的泛型编程原为C++的特色之一,现在JDK1.5已经扩展了这一应用。如果在先前的有过C++功底的人,就可以很快的适应变化。
知识是相互交织渗透,从原理上说EJB、CORBA、?NET的基本类似,但具体实现有点差别,EJB的优点正慢慢的在?NET中得到体现,EJB也在降低其开发的门槛,使其与?NET一样操作方便。

§1.2学习技术
对技术的掌握并不仅仅在于掌握它,应用它,而是这种技术在思想上带来的拓展,拥有这项技术在解决问题上的方法借鉴。
只 有在别人的技术的基础上,发展了技术才是学习的根本的目的,尤其对Down来的开源技术,如果对开源的东西只是简单的修修补补,就失去了开源的实际意义 了。自定义表单我们从网上找了一个eForm我只需要研究它的原理,而不必非得造的与它完全一致的,只要它能给一个启示就可。

第二章开发工具
§2.1 JBuilder 与Eclipse的比较
IBM 在96年左右推出了VisualAge For C++,其后又推出了VisualAge For Java一度占据了很高的市场份额,但自从 J Builder问世后,逐渐占据了大部分的市场份额,迫使IBM放弃了VisualAge For Java产品的后继开发计划,转而让给了开源组 织,后才有了较好的Eclipse。Eclipse为开源的开发工具,完全使免费的,并不断的有人在为其添衣加彩,功能在不断的加强,已博得不少开发人员 的青睐,已获得Java开发工具的最受欢迎的工具。
Jbuilder 是Borland 公司的拳头产品,在技术上具有绝对的优势。但Jbuilder价格高,学习版就需数千元。不过Borland提供了免费的评估版,可以作为学习之用。
§2.2选择J Builder
对于开发普通Java 代码,或作为学习之用,用JBuilder 与Eclipse同样合适。若开发Swing 或EJB等则Eclipse就不具有Jbuilder的可视化操作的快捷方便等优点。
用Jbuilder 开发EJB只需要填写必要的参数即可完成一个Bean的基本开发,你只须关心自己的程序即可,不必为了繁杂的地层XML配置文件辛劳,Jbuilder自己给你搞定。为你节省大量宝贵的时间和不必要的劳动。
并 且对应于不同的EJB服务器,XML配置文件也不尽相同,如在Sun公司提供的服务器中注册消息Bean的连接工厂的JNDI名称的标签名为< res-ref-name>而Welogic中为;而对于 Jbuilder来说,你不需要关心这些,它完全为你做好了这些琐碎的事,你只管做自己的逻辑控制。
相对于其他的开发工具Jbuilder可能在开发之前有写比较烦琐的配置的事做,但在有资料的帮助下是很容易完成的,所以使用Jbuilder可以快速上手,并且技术台阶比较低,特别对于现今的高速社会,快速的开发工具将可以大大提高开发的速度,早于竞争对手拿下定单。

第三章关于开源资源
§3.1软件不是Down来的
随着开源资源和评估软件的越来越丰富,有些开发人员在一接到项目或某个模块时总是立即上网Down别人的程序原代码,然后指望在别人的代码中动动就算是自己的工作了,但往往效果比较差强人意,毕竟别人的东西很少能完全符合自己的需求。所以软件不是Down来的。
我 觉得大家往往对自己的能力没有足够的信心,导致来任务时总想法去套别人的东西,但网上下来的代码很少有详细的文档和其他的技术资料,光看代码,会让我们很 难理解作者的原有意图,一味心急,到头来反而一头雾水,无从知所。与其被别人的东西弄昏了头不如自己头脑还清醒的时候自己去找个解决方法。
§3.2正确看待开源资源
我个人认为开源资源是技术的借鉴,开源组织的目标也只是为了技术的促进反对技术垄断,如果完全抄袭开源的东西用于商业用途,是有违开源组织的意图的。技术 的借鉴并不是抄袭,既然是借鉴就需要有自己的内容。开源的东西可能是C#的程序,我们可以把它转为Java来实现,这样对我们自己也是一个提高。
§3.3重点研究工具类开源资源
针对当前流行的B/S结构如果采用Weblogic + JBuilder + Oracle的搭配来开发与部署系统当然好,但高昂的成本不是一般的开发 企业和客户能够接受的,业界广泛的推荐采用JBoss +Eclipse+mySQL,尤其适合中小型企业的开发与应用。如果软件公司在考虑开发效率上可 以采用 JBoss + JBuilder + mySQL配套模式来开发(对于大客户还是采用Weblogic + JBuilder + Oracle的经典模式较佳)。
JBoss,Eclipse,mySQL都为开源的工具,对于中小型公司比较重要,使用他们将可以省去大量的成本,并可以推出低廉的软件产品给中小型客户,所以对于我们这样的公司,研究这些开源的工具非常的重要。

第四章分布式应用原理

§4.1分布式应用基本原理
§4.2EJB技术原理
会话 EJB
会 话 EJB 用于为应用程序服务器上的客户端执行业务任务。有状态会话 Bean 在客户端调用时会保持对话状态。也就是说,对话状态用于在方法调用间跟 踪数据,并确保 Bean 响应正确的客户端。无状态会话 Bean 不使用对话状态,与客户端的合同只持续到方法调用结束。会话 EJB 不是持久性 的,因此当客户端终止时,其会话 EJB 将断开并且不再与客户端关联。

实体 EJB
实体 EJB 表示持久存储机制中的业务对 象。业务对象的部分示例包括客户、定单和产品。持久存储机制是关系型数据库。通常,每个实体 Bean 对应关系型数据库中的一个底层表,它的每个实例对 应此表中的一行。与会话 Bean 不同,实体 Bean 是持久性的,允许共享访问,具有主键,并且可以与其他实体 Bean 存在关系。

主要介绍JMS资料来自:(非本人作)
http://dev2dev.bea.com.cn/download/school/workshop/WorkshopCNHelp/doc/zh/core/index.html(开始有点慢,等3分钟以上)
概述:消息处理系统和 JMS
借 助 JMS 控件,应用程序可轻松与消息处理系统进行通信。了解消息处理系统以及 JMS 控件如何与其进行交互,有助于更好地了解如何使用 JMS 控 件。本主题描述了可使用 Java 消息服务 (JMS) 进行访问的消息处理系统的特征,并解释 JMS 如何与这些系统进行交互。

了解消息处理系统
消 息处理系统可在软件组件之间提供通信。消息处理系统的客户端可以与任何其他客户端相互收发消息。每个客户端都连接到可提供消息收发功能的消息处理服务器。 WebLogic JMS 是 WebLogic Server 的组件,它是消息处理服务器的示例。WebLogic Server 还支持第三方消息 处理系统。
消息处理系统提供了异步的分布式通信。这意味着,组件可以将消息发送到目标,而消息接收方可以从目标检索消息,但发送方和接收方不能直 接进行通信。发送方只知道存在可向其发送消息的目标,而接收方也知道存在可从中接收消息的目标。只要他们要使用的消息格式和目标一致,消息处理系统就会管 理实际的消息传送。

消息处理系统还能提供消息传送的可靠性。具体的可靠性级别通常可按目标或客户端进行配置,但消息处理系统有能力保证消息一定被传送,并可一次性精确传送至每一个接收方。
JMS 支持两种基本样式的基于消息的通信,即“点对点”与“发布和订阅”。下面将对每一种样式进行详细的描述。

使用 JMS 队列进行点对点消息处理
点对点消息处理通过 JMS 队列完成,这些队列是 JMS 服务器中配置的特定命名资源。JMS 客户端(JMS 控件是它的示例)可将消息发送到队列或从队列接收消息。

点对点消息只能有一个使用者。多个接收者可以在同一队列中监听消息,但是一旦有任何接收方从该队列中检索特定消息,该消息便处于使用状态,而其他潜在使用者将无法再使用该消息。
消息处理系统会继续重新发送特定消息,直到尝试了预定的重试次数。收到消息后,消息使用者会对接收进行确认。

使用 JMS 主题进行发布和订阅消息处理
发布和订阅消息处理是使用 JMS 主题完成的。主题是 JMS 服务器中配置的特定命名资源。
JMS 客户端(JMS 控件是它的示例)可将消息发布到主题或订阅主题。已发布的消息可以有多个潜在订阅者。主题的所有当前订阅者都会收到订阅生效后发布到该主题的所有消息。
连接工厂
JMS 客户端必须先通过连接工厂获取到消息处理系统的连接,然后才可以向队列或主题发送消息,或从队列或主题接收消息。连接工厂是由消息服务器管理员配置的资源。连接工厂的名称存储在 JNDI 目录中,希望创建连接的客户端可以在该目录中查找它们。

WebLogic Workshop 中有一个预先配置的默认连接工厂,名为 cgConnectionFactory。可以将此连接工厂用于不会显式覆盖它的所有 JMS 控件。

§4.3其他应用原理

第五章EJB开发过程
§5.1 weblogic下开发的环境配置
DataSource(略,公司大部分人已知)
JMS
先配置一个JMS的消息服务,将消息服务部署到当前服务域。配置一个主题(对应发布和订阅消息处理方式),将主题连到消息服务上。即完成一个JMS应用配置。
§5.2在J Builder下开发
Entity Bean
(略)
Session Bean
(略)
Message-Driven Bean



JMS
File->new->Enterprise->JMS


§5.3常见问题
1. 做EJB,编译时出现下面的错误:("WFMessage.jar": C:j2sdk1.4.2_03jreinjavaw - classpath"E:MyJavaTestMsgclasses;C:eaweblogic700serverlibweblogic.jar;C:eaweblogic700serverlibwebservices.jar;" weblogic.ejbc -compiler C:/j2sdk1.4.2_03/bin/javac E:/MyJava/TestMsg/WFMessage.jar.jar E:/MyJava/TestMsg/WFMessage.jar
"WFMessage.jar": WebLogic APPC tool invocation errors.)

解决方法:

下一步

将Use EJBC to generate stub files 的钩子去掉,选择OK,重新编译。

第六章EJB带来的技术手段
§6.1传统的手段
CGI
传统JAVA(POJO)
§6.2 EJB带来的技术手段
消息
事件
§6.3 EJB带来的设计境界
原先的设计构想
当前的工作流设计结构。
应用EJB新构想
见《》
第七章EJB开发的注意事项
§7.1 关于Entity Bean
如果一个系统中每个数据对象都是Entity Bean。并且数量多于200个时,应用服务器的启动时间将需要好几个小时。建议用 session Bean 返回简单的Java对象,减少Entity Bean的数量(20个左右),应用服务器的启动时间将只需要1分钟左右。
详细参考:\webserver eam esourceEJBws-ebu J2EE Pitfalls and Best Practices v2_cn_rachel.ppt
开发Entity Bean时尽量使用CMP和EJB QL主要是为了数据库的可移植性。一般来说不同的数据库开发商他们支持的数据库访问语句不会完全一 致,从而早成数据库产品的可移植性。而使用EJB QL则可以解决这个问题。建议用EJB开发产品时尽量使用EJB QL和Entity Bean。
§7.2 业务逻辑与Session Bean
业务逻辑在企业级的开发中一般封装成普通的类以便于测试,因为测试一个EJB的组件比测试一个普通的类要麻烦的多。测试EJB组件需要部署到服务器,测试端要生成客户端程序,最后才是业务逻辑的测试,而普通的类只需要最后的一步。
Java Bean 与EJB的转换
普 通的Java Bea 能与EJB转换的可以是普通类转为Entity Bean,Session Bean普通类转为Entity Bean需要在 Bean 添加若干代码;而普通的类转为Session Bean较为方便,只需要通过继承关系就可以完成,在J Builder中可以选择一下继承类, 就可以了,J Builder自动完成相应的XML配置工作。
因为普通代码的系统实现方式与EJB方式在数据库等很多方面操作不大相同,一般很少 将数据库的操作的类封装为EJB,而业务逻辑为了完全的一致往往需要将代码保持一致,所以在用普通的方式实现的基础上通过继承的方式在 Session Bean中封装业务逻辑。我在做图形化的时候我就是将排图的程序放在普通类的,测试方便,可以在多种情况下一致的使用。
转换问题
在修改Java Bean类某个方法时,J Builder往往不能自动适应变化,需要用户自己在接口类中修改。
§7.3 其他问题
开发Servlet
开发Servlet时通常包含了很多操作逻辑,建议在将操作的逻辑先写成普通的类以便于测试,在确认操作逻辑与预定的设计无误时在将代码移植到Servlet中,减少测试的花费。更好的Servlet开发方案可以参考我在设计自定义表单过程中用到的技巧。



作者;宣圣贤

xuansx@tom.com

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/374079/viewspace-131539/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/374079/viewspace-131539/

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值