Java项目开发平台开发规范__________北京东方国信电子有限公司CRM事业部时间:2003-8-27目录Java项目开发平台开发规范____________________________________________1一、开发平台概述_______________________________________________________3二、技术综述___________________________________________________________51、Struts框架技术_____________________________________________________________52、Hibernate数据持久化技术_____________________________________________________83、动态bean技术_____________________________________________________________14三、在BONC-JONE平台上进行开发_______________________________________181、BONC-JONE平台目录说明___________________________________________________182、如何使用BONC-JONE运行起来______________________________________________183、开发有关规范性要求及典型步骤_____________________________________________19四、主要函数及使用技术方法说明________________________________________42如何使用自定义标签库?______________________________________________________42如何使用日志类写日志?______________________________________________________45如何进行资源注册?__________________________________________________________47如何进行登陆权限验证?______________________________________________________47如何进行字符转换?__________________________________________________________47如何对资源文件进行字符转换?________________________________________________47如何配置、读取应用配置信息?________________________________________________47如何打包boncpersistenceobj.jar文件?_______________________________________________47数据操作方法的原理是怎样的?________________________________________________47如何将任意文件上传到数据库中,又如何下载?__________________________________47如何保证在页面清空的字段能正确提交到数据库?________________________________47如何使用日期控件?__________________________________________________________48如何使用DBQuery类进行数据查询?____________________________________________48如何自动生成Hibernate持久化beans及map文件?___________________________________48如何使用分页技术?__________________________________________________________50附录:________________________________________________________________53附A:Struts学习精要参考_____________________________________________________53附B:Hibernate学习精要参考___________________________________________________53附C:技术备忘______________________________________________________________53一、开发平台概述BONC-JONE开发平台是北京东方国信电子技术有限公司遵循“简单、有效、先进、可扩”的原则,通过整合Struts1.1与Hibernate2.1等优秀的开源技术设计并实现的一个J2EE开发平台。其架构图如下:这个体系架构的主体是MVC架构。MVC是Model/View/Control的缩写。Model/View/Control是软件设计的典型结构。在这种设计结构下,一个应用被分为三个部分:Model、View和Controller,每个部分负责不同的功能。Model是指对业务数据/信息的处理模块,包括对业务数据的存取、加工、综合等;View是指用户界面,也就是面向用户的数据表示;Controller则负责View和Model之间的流程控制,也就是完成两个方向的动作:1.将用户界面(View)的操作映射到具体的Model,以完成具体的业务逻辑;2.将通过Model处理完的业务数据及时反应到用户界面(View)上。其系统组成结构图如下:BONC-JONE开发平台从总体结构上充分体现了分层的系统设计思想。分层的概念起源于操作系统及网络协议设计中,但目前这个概念已在所有面向对象的应用系统中相当流行了。BONC-JONE开发平台主要层次分为:表示层、业务层、持久化层及一些各层公用的工具类库。分层的系统设计思想的重点在于:一个分层的系统在各相关层的实现代码间定义了接口,从而允许一个层的实现代码的变化不会影响到其它的层。分层系统结构还限制隔层依赖的发生,各层的通讯是由顶向下管理的。某一层仅依表示层Struts+Tiles业务层业务管理接口+业务管理抽象类+业务管理实现类持久化层Hibernate业务Beans技术数据库DataBase连接池技术平台辅助APIJDBC赖于直接位于它下面的那一层。每一层对其他层的存在都是不知道的,除非那一层紧邻其下。即使是对紧邻其下的层它也仅需要知道如何使用接口与其通讯就可以了,而无需知道其实现细节。BONC-JONE开发平台通过Struts+Tiles技术实现了MVC模式中的表示层和控制层,通过Hibernate技术结合动态Bean技术融合成独特的业务Beans技术构建了数据层。二、技术综述1、Struts框架技术Struts是一个基于J2EE的MVC框架。J2EE体系包括JSP、Servlet、EJB、WEBSERVICE等多项技术。这些技术的出现给电子商务时代的WEB应用开发提供了一个非常有竞争力的选择。但怎样把这些技术组合起来,形成一个适应项目需要的稳定架构对项目开发是非常重要的。设计一个框架,需要考虑的方面很多,不仅要对J2EE体系中的各种技术进行筛选取舍,并要考虑到开发过程中的角色分工、后期的运行维护,以及系统扩展性等诸多因素。因此,一个成功的软件需要有一个成功的架构。MVC架构使得应用程序的结构更加清晰,通过将代码按照层次划分为业务逻辑/数据、用户界面和应用流程控制这三个层次,增强代码稳定性。我们知道,对于Model、View、Controller这三部分功能来讲,View的实现一般是由界面设计人员和界面程序员来完成,Model则是由业务逻辑程序员来完成,Controller则一般由负责整体控制的程序员来完成。Controller部分的代码比较稳定,一般会实现一个通用的架构;而Model则跟随商务流程的变化而变化;View的更改则是随着用户需求的更改而更改。这种模块功能的划分有利于在代码修改过程中进行模块的隔离,而不需要把具有不同功能的代码混杂在一起造成混乱。对于项目开发而言,有利于在项目小组内按照小组成员各自的擅长进行分工,有利于三个部分并行开发、加快项目进度。当前可供选择的较为流行的MVC框架有六种之多:Struts、Maverick、WebWork、Turbine、RealMothods、AOP(aspect-orientedprogramming)。它们应用的领域及实现的侧重点各有不同。但以Struts应用最广,是基于MVC模式的Web应用最经典框架,当推首选。Struts最早是作为ApacheJakarta项目的组成部分问世。项目的创立者希望通过对该项目的研究,改进和提高JavaServerPages(JSPs)、Servlet、标签库以及面向对象的技术水准。Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。因此我们选择Struts。Struts鼓励按照Model2方式构建应用的体系。Model2是MVC基本设计模式的一种变体。MVC设计模式的优点是,它使得Model、View和Controller各个部分之间相对独立。Struts在一个中心位置装配ActionServlet、ActionMapping和各种Action类,处理所有传入的HttpServletRequest。ActionServlet把各个传入的HttpServletRequest分发给Action类,而ActionMapping对象可通过Struts-config.xml配置文件控制,它告诉ActionServlet如何分发请求。本图示意了Struts各个部分之间的通信过程Controller的功能:在客户端、View和Model之间起协调、仲裁的作用。只有Controller才会与Model和View联系,在这中间它就象是一个交换机,而Model和View之间不会直接通信,这样,Model、View和Controller就被分隔开来。这是成功运用Struts的关键所在。说明一下:所有Controller的逻辑应当放入Action类,与应用的其他层的通信可以在这里进行。虽然我们可以把业务逻辑也放入Controller,但一般而言最好不要这么做。应当改用Model部分的组件,因为这些组件才是真正处理数据的地方。把数据保存到数据库也应当是Model的功能之一。当Controller处理好一个HttpServletRequest,它把请求转发给View。View的唯一任务是表现数据,在Struts中,View一般使用JSP技术。在Struts中,Controller和View之间的所有通信都通过HttpServletRequest、HttpSession和ServletContext间接完成,对于这些操作来说,首选的技术莫过于Servlet,Struts直接把HttpServletRequest传递给Servlet——或者是JSP,不过Servlet容器会自动把JSP转换成Servlet。Struts框架将其侧重点放在了Controller与View层。View由JSP定制标记库和JSP页面共同构造,其中ActionForm类是一种类似JavaBean的ValueObject对象,带有set和get方法,用来保存客户的状态。按照Struts的MVC概念,ActionForm位于View和Controller之间的中间地带。Struts提供了一组完备的专用标记,用来从JSP访问A