您好,欢迎访问三七文档
新架构讲解2010.12.2新架构技术引用•Ext•Struts2•Spring•ibatisSRC目录结构开发命名规范•Action类命名以Action结尾•Service类与接口以Manager结尾•数据对象以VO结尾•Exception类以Exception结尾功能简介及规范•统一错误处理,非必要情况程序中不使用try•架构支持多数据库连接•架构支持事务处理,但暂不支持JTA等跨数据库的事务处理•需事务处理的程序逻辑必须写在service类中,action中不支持ExtJS简介•ExtJS可以用来开发RIA也即富客户端的AJAX应用,是一个用javascript写的,主要用于创建前端用户界面,是一个与后台技术无关的前端ajax框架。因此,可以把ExtJS用在.Net、Java、Php等各种开发语言开发的应用中。对ExtJS进行封装扩展•扩展内容在Web目录中layout子目录。对ExtJS进行封装扩展•Xml.js核心文件,负责解析xml配置文件生成界面•Constants.js常量定义文件•Custom.jsExt扩展文件,对Ext对象进行程序扩展•CustomType.js类型定义文件•Defaults.js对封装的对象进行默认值设定•Function.js共用函数定义文件对ExtJS进行封装扩展•Function.jsExt.Function.request4XML参数:url读取xml文件的路径asynctrue是异步,false是同步返回值:response用途:调用远程程序,返回数据格式为xml对ExtJS进行封装扩展•Function.jsExt.Function.encodeMStatusExt.Function.encodeYesOrNoExt.Function.encodeTrueOrFalse参数:value要转换的数值用途:业务需要将一种格式数值转换成对应的另一种格式数值,如:1转换成True,或者1转换成是对ExtJS进行封装扩展•Function.jsExt.Function.closeWindow参数:o激活该函数的对象e事件对象用途:通过参数o查询其所在window,并隐藏它注:这里的参数是Button的click参数类型对ExtJS进行封装扩展•Function.jsExt.Function.showWindow参数:panelIdpanel的idvalues需要填充form的值集合,可以为空用途:通过参数panelId查询其所在panel,将values赋值给相应的field,并显示该panel注:labelField无法这样赋值对ExtJS进行封装扩展•Function.jsExt.Function.refreshPropertyPanelExt.Function.refreashCardPanelExt.Function.refreashFormPanel参数:panelIdpanel的idvalues需要填充值集合,可以为空用途:通过参数panelId查询其所在panel,将values赋值给相应的field注:labelField无法这样赋值对ExtJS进行封装扩展•Function.jsExt.Function.resetFormPanel参数:panelIdpanel的id用途:通过参数panelId查询其所在panel,将其reset对ExtJS进行封装扩展•Function.jsExt.Function.findFieldFormGrid参数:gridIdgrid的idfieldnamefield的name名称用途:通过参数获得grid中的field对ExtJS进行封装扩展•Function.jsExt.Function.refreshGridByBbar参数:gridIdgrid的id用途:通过参数获得grid,并刷新其显示的数据注:该grid必须存在分页条对ExtJS进行封装扩展•Function.jsExt.Function.reloadGrid参数:gridIdgrid的idparams查询参数,为json数据格式用途:通过参数获得grid,并刷新其显示的数据对ExtJS进行封装扩展•Function.jsExt.Function.getRowRecordFromGridExt.Function.getRowRecordsFromGrid参数:gridIdgrid的id用途:通过参数获得grid,并返回被选中的记录行对ExtJS进行封装扩展•Function.jsExt.Function.selectRecords4Grid参数:gridIdgrid的idresult需要被选中的结果集JSON数据格式的数组flagtrue保留原有被选中项,false清空原有选中项id查找选中项的关键id用途:通过参数使grid中的记录集被选中对ExtJS进行封装扩展•Function.jsExt.Function.getParams4Form参数:panelIdpanel的id用途:通过参数获得指定panel中的表单项(JSON数据格式)对ExtJS进行封装扩展•Function.jsExt.Function.findFieldForm参数:formIdform的idfieldname表单项name名称用途:通过参数获得指定的表单项对象对ExtJS进行封装扩展•Function.jsExt.Function.request4Ajax参数:url访问路径params访问参数msg是否显示提示信息success成功回调函数failure失败回调函数asynctrue是异步,false是同步用途:通过ajax进行远程访问对ExtJS进行封装扩展•Function.jsExt.Function.selectNodeById参数:treetree对象nodeId需要选中的nodeId用途:展开tree到指定的节点,并激活该节点的click事件注:树中节点ID定义的格式为“x-x-x-x-x”,即父节点id+“-”+x=本节点id对ExtJS进行封装扩展•使用中每个应用页面存在两个文件jsp文件xml文件Struts2简介•WebWork衍生出了Struts2.因为Struts2是WebWork的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证:而且吸收了Struts1和WebWork两者的优势。•强调:因为客户端采用了Ext架构,所以在客户端与服务器通讯过程中采用的是JSON数据交换格式Struts2简介•开发注意事项1、需要返回json格式resulttype=jsonparamname=ignoreHierarchyfalse/param/resultStruts2简介•开发注意事项2、统一进行错误处理global-resultsresultname=exception/sqlException.jsp/resultresultname=login/index.jsp/resultresultname=noUsertype=jsonparamname=ignoreHierarchyfalse/param/resultresultname=noOrgtype=jsonparamname=ignoreHierarchyfalse/param/result/global-resultsStruts2简介•开发注意事项2、统一进行错误处理global-exception-mappingsexception-mappingresult=exceptionexception=java.sql.SQLExceptionparamname=errorCode1101/paramparamname=message你好/param/exception-mapping/global-exception-mappingsStruts2简介•开发注意事项3、Action必须继承com.htit.web.struts2.action.BasicAction4、方法名称不能以get开头,非返回值属性不用定义get开头的方法5、Action中manager的引用@AutowiredprivateFunctionManagerfunctionManager;6、Action中manager必须为接口,不能使用实现类Spring简介•通常,Spring是指一个用于构造JAVA应用程序的轻量级框架,“轻量级”并不意味着类数量很少,或者发行包大小很小,实际上,它指的是Spring哲学原理的总称——那就是最少的侵入。Spring是轻量级的,意味着你只需对你的程序代码做很少改动(假若有的话),而获得Spring核心带来的好处,你也可以在任何时候选择抛弃Spring,你会发现这实在很容易。注意,上面这句话只针对Spring核心本身——很多附加的Spring组件,比如数据访问,需要与Spring框架有相对紧密得多的耦合关系。但是,这些耦合带来的好处显而易见。•Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。Spring简介•开发注意事项1、manager实现类需要继承com.htjc.services.BaseDaoForIbatis2、类定义前需要添加@Service,如下@ServicepublicclassFunctionManagerImplextendsBaseDaoForIbatisimplementsFunctionManageriBatis简介•Hibernate等提供了全面的数据库封装机制的ORM,“全自动”ORM实现了POJO和数据库表之间的映射,以及SQL的自动生成和执行。而ibatis的着力点,则在于POJO与SQL之间的映射关系。也就是说,ibatis并不会为程序员在运行期自动生成SQL执行。具体的SQL需要程序员编写,然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POJO。使用ibatis提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象,这一层与通过Hibernate实现ORM而言基本一致,而对于具体的数据操作,Hibernate会自动生成SQL语句,而ibatis则要求开发者编写具体的SQL语句。相对Hibernate等ORM机制而言,ibatis以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。作为“全自动”ORM实现的一种有益补充。iBatis简介•开发注意事项1、新添加的sqlxml文件,需要在sqlmap-config.xml文件中引用sqlMapresource=com/htit/sql/permissions.xml/sqlMapresource=com/htit/sql/system.xml/sqlMapresource=com/htit/sql/menu.xml/sqlMapresource=com/htit/sql/resource.xml/
本文标题:架构讲解
链接地址:https://www.777doc.com/doc-3711086 .html