![[IT计算机]中国银行软件开发和测试培训资料.ppt_第1页](http://file.renrendoc.com/FileRoot1/2019-12/17/d4e07bdb-2788-423d-8762-ebc52a503147/d4e07bdb-2788-423d-8762-ebc52a5031471.gif)
![[IT计算机]中国银行软件开发和测试培训资料.ppt_第2页](http://file.renrendoc.com/FileRoot1/2019-12/17/d4e07bdb-2788-423d-8762-ebc52a503147/d4e07bdb-2788-423d-8762-ebc52a5031472.gif)
![[IT计算机]中国银行软件开发和测试培训资料.ppt_第3页](http://file.renrendoc.com/FileRoot1/2019-12/17/d4e07bdb-2788-423d-8762-ebc52a503147/d4e07bdb-2788-423d-8762-ebc52a5031473.gif)
![[IT计算机]中国银行软件开发和测试培训资料.ppt_第4页](http://file.renrendoc.com/FileRoot1/2019-12/17/d4e07bdb-2788-423d-8762-ebc52a503147/d4e07bdb-2788-423d-8762-ebc52a5031474.gif)
![[IT计算机]中国银行软件开发和测试培训资料.ppt_第5页](http://file.renrendoc.com/FileRoot1/2019-12/17/d4e07bdb-2788-423d-8762-ebc52a503147/d4e07bdb-2788-423d-8762-ebc52a5031475.gif)
已阅读5页,还剩74页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
bfw开发基础培训2010年3月,共六部分内容:1、基于bfw的开发流程2、技术重点3、中行项目开发过程4、中行项目的测试,一、基于bfw的开发流程,概述bfw(bocsoftframework)是一个基于java语言开发的,主要目标为企业应用开发中各种难点提供综合全面的解决方案。(如:多渠道整合、用户权限控制、事务处理、组件化资产管理于复用,第三方技术集成等)其核心思想是以ioc/di容器为资产累积的平台,面对各种应用问题,开发各种有针对性的组件,提供解决方案。并形成技术资产,持续优化与扩充,鼓励充分复用,以实现最大程度内提高开发生产力的目标。,bfw分层结构,4,框架比较,5,核心概念,开发组织架构,7,分层介绍bfw项目开发,展现层开发服务层开发dao层开发产品层开发,8,展现层开发,1、展现层结构1,1、展现层结构2,交易配置文件:trs_*.xml菜单配置文件:menu_*_*.xml角色权限配置文件:role.xml格式校验配置文件:style.xml多语言支持:异常信息:bfw_error_*_*.properties常量信息:constant_*_*.propertiesjsp页面:jsp_message_*_*.properties页面结构:page_*_*.properties字典消息:dictionary_*_*.properties下载文件标题:download_titiles_*_*,从交易说起,交易配置文件trs_*.xml最简单的交易indexhttp:/xxx/queryoperatorpre.do,基本概念(一),交易实现展现逻辑的基本要素。主要由action、fields、channels组成action:业务逻辑片断fields:输入域channels:呈现的选择模版:执行流程每个交易对应一个预先定义的模板负责交易的流程控制对于业务逻辑片断的编程原则上都应该定义在template中。chain:责任链command:责任链节点*delegatecommand,bfw-http处理时序,14,15,bfw-http核心组件,mainservlet作为ioc容器加载入口。作为接入适配器,负责接收http请求,调用控制(maincontroller),并将处理结果派发给视图(view)进行渲染。maincontroller完成上下文(context)加工,负责调用bfw核心控制(corecontroller),并负责异常的处理,生成视图参数,并将处理结果返回mainservlet。view接受mainservlet发送来的数据,并负责数据的渲染呈现。,bfw支持多种视图技术download,jsp,velocity等,16,配置一个bfw-http交易,确定交易配置根据需求分析交易需要选择的模板确定交易使用的视图类型,视图地址编写action实现业务逻辑编写视图页面,bfw-view,视图bfw的视图定义在http.xml文件中,mainviewresolver对象下。在交易的channel属性中应配置视图类型、路径、参数视图格式:viewtype,pathkey=value,视图类型:url视图通常用来呈现html通过localemode支持国际化设定download视图用来支持文件下载stream视图通常用作系统间通讯servlet视图用来调用另一个bfw-http交易其他(velocity,dynamic.),bfw-action,action通常我们集成abstractexecutableaction抽象类action还有其他的接口如:preparable,submitable,pageloader,需要视选择的模板决定。,基本概念(二),图示:,下面具体步骤以b2b的订单批量查询为例。ordermulqueryactbpemerchantidstyleb2bordernumberoption=truedate10styleoption=truedate10styleoption=trueent/b2b/b2bqueryorderresultid=0452ent/b2b/testid=0021b2bpaymentservicecommonservice5,2、定义交易配置文件1,交易名称,模版名称(不可重复提交),action名称,提交后台的数据域,格式检查名称,mvc中的视图,action名称,action定义的java类,注入action的依赖类,页面号,如何选择视图,页面转发:ent/b2b/b2bqueryorderresultid=0452ent/b2b/testid=0021/*银行内部客户*/if(custype!=null/action内部根据业务决定跳转的页面,style验证,style验证bpemerchantidstyleb2bordernumberoption=truedate10styleoption=truedate10styleoption=truestyle.xml:false(16-9|2-9d)d2)/(013578|102)/(01-9|12d|301)|(16-9|2-9d)d2)/(013456789|1012)/(01-9|12d|30)|(16-9|2-9d)d2)/02/(01-9|1d|20-8)|(16-9|2-9d)(048|2468048|1357926)|(16|2468048|357926)00)/02/29),2、定义交易配置文件2,上面的介绍是最基本的交易定义,根据交易的不同目的、以及复杂程度,可以通过选择不同的模版、属性定义来实现。例如:executenotokentemplate模版:可重复提交,查询页面可以使用executetemplate模版:不允许重复提交的页面必需使用,并且对应的jsp页面中要使用标签,来控制重复提交。fileuploadtemplate模版:文件上传可以使用pageloadertemplate模版:准备页面可以使用,3、定义菜单文件,style_redtruetruecd001tioperate.docd002tireview.do.,菜单名称,在menu_zh_cn.properties中定义对应的页面显示,菜单样式定义,可在bocnetclientwebcontentcommoncsszh_cn中找到,菜单点击对应的交易,菜单对应角色权限的功能码,权限在role.xml中定义,4、角色权限配置文件,role.xmlcd001tioperatetiaddtimodifytidelete.,bfw框架角色权限处理类,无需关注,角色权限的功能码,在role.xml中定义,此功能码下可以进行的交易操作,5、格式校验,对公展现层输入域格式校验包括三部分:1、jsp页面的校验,通过js实现,大部分校验函数在bocnetclientwebcontentcommonjs-srcformcheck.js中定义。页面中不同格式输入域的校验方法可以参考checklist。2、style校验,通过在交易配置文件中定义输入域,在style.xml中定义校验方法,由bfw框架进行验证。避免定义新style,尽量复用已有style。3、action中校验,前两种校验主要针对单输入域的校验,对于和业务逻辑相关的复杂交易,需要在action中实现。,页面显示jsp_message_zh_cn.propertiesl10n_7541=订单信息如下,请复核!l10n_6296=订单号l10n_0033=网上银行l10n_0034=关闭l10n_0036=账户概览-明细查询-银行账户-中国银行网上银行系统l10n_0037=关联账户jsp页面使用boc:translator标签来显示:开发阶段写成即可,上线前批程序生成,页眉、页脚page_zh_cn.properties#对账服务开始#对账单核对-账单列表.0471=余额对账单核对page.top.0471=我们在这里为您提供余额对账单核对、下载及其对应的账户明细对账单的查询与下载功能page.bottom.0471=1、客户点击操作项下的“核对”可进入该协议的账单界面进行核对账单操作。2、本界面上只显示尚未反馈回执的对账单(含一年内本期和非本期所有余额账单),已核对完成的协议则不予以显示#对账单核对-账单明细.0472=余额对账单账户明细核对page.top.0472=您可以在此点击查看每个账户对应的交易明细账单,并确认余额核对结果page.bottom.0472=1、点击“提交”,系统将保存您本次操作结果;2、点击“暂存”,将暂存您本次操作结果,您在下次登陆时可继续填写;,6、jsp页面开发1,典型的页面有三种:1、只有数据展示的简单页面委托、修改结果页面、详情页面可选模板:executenotokentemplate,pageloadertemplate2、有数据提交的页面委托、修改可选模板:executetemplate3、分页页面复核、授权选择列表页面,查询结果页面,6、jsp页面开发2,提交页面.functioncheckform()if(!check_empty(form1.payeevalue|trfdate|trfamt,|)returnfalse;.pageprocessing();returntrue;.,编码格式,tile页面类型,公用js方法引用,禁止页面重复提交,显示bfw异常提示信息,页面提交异常返回后保留已有savedmap对象内容,显示滚动条,禁止页面操作,国际化定义,6、jsp页面开发3,提交页面,隐藏域,用来在页面间传递数据,名称要和交易中一致,异常信息显示位置,和配合使用,6、jsp页面开发4,分页页面.,7、bfw标签,boc:optionboc:translatorboc:radio,表单防重,禁止页面重复提交。配合模板executetemplate使用。trs_*.xml交易配置文件casscheckconfirmresactionent/cass/check/casscheckconfirmresid=04713,34,记录当前访问链接的地址,当抛validationexception时通过这个地址重定向到当前页面(显示bfw异常信息)actionif(accountnoobj=null)/如果没有余额调整记录,抛出异常thrownewvalidationexception(bill.check.billaccdetailadjust.detailsubmitempty);bfw_error_zh_cn.propertiesbill.check.billaccdetailadjust.detailsubmitempty=账单核对的账号不为空页面,35,用于保留页面装载时的列表数据页面提交异常后保留已有savedmap对象的内容a的数据发送到a的结果页面显示/*设置上下文参数*/context.setdata(billid,newsaveobject(billid);context.setdata(billcheckdetailssize,newsaveobject(string.valueof(details.size();context.setdata(billcheckdetails,newsavedarraylist(details);a的结果页面中包含bfw:savemap标签,页面提交到bb抛出bfwexception异常,跳回a的结果页面,之前从a带到页面的数据,希望保留显示,36,boc:option1.列表数据来源与后台数据库列表的值相当于$item.oppfundno/$item.oppfundname/$item.openbank,37,boc:option2.列表数据来源常量文件列表当前默认选中值的数据来源,38,constant.xml:123,perties:#指令来源键值ti.transsource.1=人工ti.transsource.2=网银ti.transsource.3=swift,boc:translator1.用于显示常量(带prefix)根据货币码,如人民币001#币种属性currency.type.=全部currency.type.000=不可选择currency.type.001=人民币元,39,boc:translator2.用于国际化文本开发阶段,标签里直接写中文即可,40,jsp_message_zh_cn.propertiesl10n_0372=账号:l10n_0373=账号l10n_0374=别名l10n_0375=账户信息如下,如需取消关联请确认!,3.用于国际化文本(javascript)if(!check_empty(balanceselectname,)returnfalse;escape=“js“表示自动转译特殊字符,如字符串中的单引号等,通常都需要加上,41,boc:button注意value里面不需要在使用boc:translator标签,以下是错误的onclick=returnconfirmation();type=submit/,42,boc:formatnumber格式化标签货币格式化(需要货币码)数字格式化日期格式化(支持date和string),43,生成隐藏域,根据fieldlist里逗号分割的key,隐藏域的value自动取context里的data分页时,页面的结果form需要加此标签,其中包含查询form中的所有查询条件的名称context.setdata(“cifno,cifno);context.setdata(“cifname,cifname);,44,服务层开发,1、服务层的主要任务,1.提供数据给展现层2.接受展现层传入的数据,并进行逻辑处理3.通过调用产品层与外系统交互,调用dao与数据库交互,来实现以上两功能。,2、服务层与其他层之间的调用关系,3、服务层代码,接口类com.bocnet.service.financial.cybergiroservice实现类com.bocnet.service.financial.impl.cybergiroserviceimpl,4、接口类方法的实现,publictransactiondotransactionsubmit()对公网银生成的一笔交易记入数据库1.整理付款方、付费方、收款方信息2.他行收款的,验cnaps号与收款行名称之间是否匹配3.验客户业务编号防重4.设置费率5.限额检查6.调用审批流程、置交易状态7.写数据库并记录日志,5、service.xml文件配置,抽象bocnet服务operatordaooverseaproductbondproductstockproduct抽象服务被注入全部的产品和dao,所有的服务应该继承此服务,从而可以访问到需要的产品dao。服务的配置及事务配置propagation_required,-serviceexception,dao层开发,1、编写dao层要完成的几件事情,1.自己编写或确认(与服务层、展现层沟通)相应实体类。2.书写sqlmap文件sql(可使用eclipseabator插件生成后另行修改)3.编写dao接口及实现类4.编写相关配置文件(sqlmapconfig.xml、dao.xml、service.xml)下面以指令管理为例,简述dao层的工作内容,2、自己编写或确认相应实体类,此过程需要与服务层、展现层沟通实体类从需求上说是对业务实体的抽象,从技术上说就是简单javabean,业务属性构成类的成员变量,再提供public的get/set方法就可以了。这一步重要的是要与服务展现层产品层有良好的沟通,变量命名合乎规范,实体类间继承关系要合理、且要方便各层使用。,3、书写sql(具体语法请参考ibatis-guide),一般情况sql文件是放在sql-mapping目录下。以cs-traninstsql.xml为例,bocnet项目中一直使用命名空间,本例中namespace=“cs.traninst”,因此如果一个sql的id是“selecttraninstbypk”,那么在系统中,该sql的唯一标识就是”cs.traninst.selecttraninstbypk”,4、编写dao接口及实现类,一般情况,一个dao是对应一个数据库表,本例中traninstdao对应数据库cstraninst表,dao提供增删改查操作publicinterfacetraninstdao/dao接口声明insert方法,一般由sql生成流水号,并通过该方法将流水号返回intinserttraninst(traninstobject);delete方法,返回删除条数,返回值由调用者判断是否处理intdeletetraninst(integertraninstid);update方法,返回更新条数,返回值由调用者判断是否处理intupdatetraninst(traninstobject);select方法,一般需提供多种根据主键查询交易实体类,一般是用于页面显示交易明细使用traninstselecttraninstbypk(integertraninstid);复杂一点的查询listselecttraninstbydynamic(mapparams);,5、编写dao接口及实现类,dao实现类需继承sqlmapclientdaosupportpublicclasstraninstdaoimplextendssqlmapclientdaosupportimplementstraninstdaoprivatestringselecttraninstbydynamica=cs.traninst.selecttraninstbydynamica;privatestringinserttraninst=cs.traninst.inserttraninst;publicintinserttraninst(traninsttraninst)introws=super.getsqlmapclienttemplate().update(inserttraninst,traninst)returnrows;publiclistgettraninstbydynamic(mapparams)listlist=(list)super.getsqlmapclienttemplate().queryforlist(selecttraninstbydynamica,params);returnlist;,6、编写相关配置文件,cs-traninstsql.xmlt.traninst_id,t.tran_date,t.custact_no,t.recev_time,t.trans_type,t.exch_no,t.sta,cust.port_nameasport_name,tf.tran_type_nameastran_type_name,tf.yn_pre_matchasyn_pre_match,ex.exch_nameasexch_name,ex.exch_typeasexch_type,ed.deliv_nameasdeliv_nameleftouterjoinamcustcustont.custact_no=cust.custact_noleftouterjoinbmexchexont.exch_no=ex.exch_noleftouterjoincstranconftfont.trans_type=tf.tran_type_noandex.exch_type=tf.exch_typeleftouterjoinbmdeliveedont.deliv_no=ed.deliv_noselectcstraninst_seq.nextvalastraninstidfromdualselect,fromcstraninsttwheret.traninst_id=#traninstid#andt.tran_date=#trandate#,select,fromcstraninsttwhere1=1andt.traninst_id=#traninstid#andt.deal_no=#dealno#andt.custact_nolike%|#custactno#|%andcust.port_namelike%|#portname#|%andt.exch_no=#exchno#andt.trans_type=#trantypeno#andto_date(t.trans_date,yyyy-mm-dd)=trunc(#begindate#)andto_date(t.trans_date,yyyy-mm-dd)trunc(#enddate#)andt.stain($sta$)orderbyt.traninst_iddesc,6、编写相关配置文件1,sqlmapconfig.xml文件。,6、编写相关配置文件2,dao.xml文件bocnetdatasourcesqlmapclient,6、编写相关配置文件3,在service.xml中,需将新增加的dao注入的service的抽象类中,供所有service调用_entitlementcontrolleroperatordaotraninstdaoaccountpairdaoentitlementdao,产品层开发,1、产品层的主要任务,1.接受服务层传入的数据/对象2.组织上送后台数据,对数据进行格式化3.发送数据到后台,等待后台返回数据4.接收后台返回数据,对数据进行解析5.判断交易成功/失败,返回交易结果给服务层,2、各层之间的调用关系,3、交易处理流程,4、产品层调用关系,说明:所有的产品层对象在product.xml定义,产品类的ref对象类在function.xml中定义,functi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年学历类自考专业(国贸)国际运输与保险-国际技术贸易参考题库含答案解析(5套)
- 2025年新分股份合同协议书
- 能源与资源行业:2025年能源行业环保法规与政策影响分析报告
- 2025年学历类自考专业(公共关系)广告学(二)-广告学(二)参考题库含答案解析(5套)
- 2025年学历类自考专业(公共关系)公共关系案例-公共关系案例参考题库含答案解析(5套)
- 2025年学历类自考专业(公共关系)企业文化-公共政策学参考题库含答案解析(5套)
- 2025年学历类自考专业(会计)财务报表分析(一)-资产评估参考题库含答案解析(5套)
- 2025年学历类自考专业(会计)中国税制-财务报表分析(一)参考题库含答案解析(5套)
- 汽车行业2025年汽车内饰设计环保性能提升报告
- (2025年标准)卫浴购销合同协议书
- 初中九年级(人教版)语文(上下册)课本全部(40篇)诗词文言文集合
- 医院关于开展整治重复医疗检查检验、违规收费问题工作实施方案的通知
- 中医高热护理常规
- 船舶用钢市场发展分析及行业投资战略研究报告2025-2028版
- 人员密集场所管理制度
- 单轨吊轨道安装安全技术措施
- 供应商黑名单管理制度
- 高端数控机床智能化控制系统研发项目可行性研究报告
- 农机安全知识课件
- 2025年河南郑州航空港发展投资集团有限公司招聘笔试参考题库含答案解析
- 钢结构车棚建设服务方案投标文件(技术方案)
评论
0/150
提交评论