应用开发框架只是课件.ppt
应用开发框架目录框架技术2框架结构3设计背景1框架介绍设计背景 面向电子政务行业类应用快速响应业务和管理需求按时交付产品的压力人员流失的风险开发成本居高不下发展历程年份年份版本版本概述概述20081.0在药监行业项目基础上提炼开发框架,主要包括底层核心架构、查询引擎。2009 1.1实现表单引擎,系统管理功能。20101.2引入JBPM工作流引擎,基于javawebstart封装可视化流程设计器,实现基于flex的流程回放功能。2011-20141.3升级完善,spring 2.5升级为spring 3.1,整合lodop网页打印,流水号生成器等。2015-20162.0新增了大量丰富的UI组件,提升用户体验、注重交互,加入可编辑表格等功能。2008201020092015201420112016框架技术客户端业务层数据访问层Spring FrameworkSpringBean-业务主体HTMLJDBCTemplateJavaScriptCSSJQueryJSP TAGFlashDBHibernateAJAXAcegi Security-安全校验Apache CXF-WebServicePOI-Excel导入导出Spring AOP-事务处理控制层编码过滤器安全过滤器框架功能结构界面层控制/业务层数据访问层JS控件JSP TAGHibernateJDBCTemplate字典管理查询引擎表单引擎日志管理用户管理权限管理菜单管理机构管理异常服务日志服务文件服务WebService服务安全过滤器控制层Controller 控制层由SpringMVC实现,完成请求参数及对象转换、业务服务调用、视图选择等处理:收集、验证请求参数并绑定到对象将命令对象交给业务对象,处理后返回模型数据返回ModelAndView(模型数据和逻辑视图名称)业务层 业务层完成所有业务操作,运算和数据存储调用,提供了核心业务处理的功能,这些业务功能可以组合以完成复杂的组合业务;业务逻辑层通过调用DAO对象完成数据的存取,以DTO对象作为传输的数据载体。注意事项:业务层只能被Controller调用数据访问层DAO 数据访问层主要由DAO对象组成,完成数据库的访问,DAO对象包含数据访问逻辑(而不是业务逻辑),DAO对象全职负责与数据库的交互,并隐藏了其中的实现细节。数据持久化层 集成持久化工具,为DAO层提供数据操作调用,开发框架集成了Hibernate、JDBCTemplate两种持久化框架,实现对数据库的访问。JDBCTemplate高效、内嵌Spring框架中、支持基于AOP的声明式事务;Hibernate支持以持久化对象的形式进行数据库操作,有利于快速开发。目录模型结构2可编辑表格3功能介绍1查询引擎查询引擎操作按钮查询条件查询表格查询表格主要分为三部分:操作按钮、查询条件、查询表格功能:查询引擎支持数据库表或者视图查询,根据配置的查询条件,自动编写SQL;操作按钮可以对表格行进行前后端操作;查询条件可以配置成各种JS控件,如tree、bigselect、checkbox等;查询表格用于展示数据,在可编辑表格模式下,还可以进行数据修改、录入,支持列排序、列宽度、列隐藏、分页、excel导出等功能。查询引擎查询时序图QueryControllerQueryRequestCreatorQueryServiceQueryValidateinterfaceQueryDataProviderQueryInstanceQueryOperationProessorgetData():String新增、修改、删除()create(String):QueryRequestvalidateQueryForAjax(QueryRequest)getData(QueryRequest,QueryEntry):QueryResponse翻译()fetchFormData(QueryRequest)buildQuery(QueryRequest)execute(List,QueryEntry,QueryResponse):QueryResponseexecute(QueryOperation,List,QueryResponse,QueryEntry):QueryResponse查询引擎模型结构模型主体表格列查询条件数据提供者SQL构建器操作按钮查询引擎可编辑表格可编辑表格是特殊的查询引擎,它能够方便的对数据进行新增修改删除操作。同时还要以下功能:1、多行编辑模式2、单行编辑模式3、支持特殊行,特殊列,不可编辑4、新增行,根据后台给默认值可编辑表格配置与普通查询引擎对比 主要有三点不同 1、设置editGrid=true,开启可编辑表格功能 2、设置allEdit=true或者false,用于判断多行编辑还是单行编辑模式 3、queryColumn列需要换成对应控件的EditColumn目录模型结构2手写表单3功能介绍1表单引擎表单引擎表单引擎时序图FormControllerFormServiceFormDataProvideInterceptorinterfaceFormDataProviderFormInstanceFormOperationloadForm()保存()preProvided(FormRequest)getData(FormRequest,FormEntry):FormResponse防止重复提交()fetchFormData(FormRequest)createFormInstance(FormRequest)execute(FormRequest):OperationNavigatorexecute(FormRequest,String,FormEntry):QueryResponsepostProvided(FormRequest):FormResponse:FormResponse:FormResponse模型结构表单引擎表单主体表单字段表单按钮数据提供者表单分组手写表单手写表单是通过模型表单生成出来的,但是和JSP页面有所区别,对应的控件,并不是原生的html而是框架定义的tag标签。优点:1、可以任意的修改页面布局,不存在模型表单的局限性2、可以在页面添加其他标签,像query等不足:1、需要维护手写页面及对应的表单模型2、如果框架对页面有所更新,无法影响到手写页面目录1公共容器-HnisiContext公共工具2js代码引擎机制-JavaScriptEngine3WebService4润乾报表5附件平台6日志管理7组织机构管理8用户管理9角色管理10字典管理11菜单管理12功能管理公共工具公共容器-HnisiContextHnisiContext给开发人员提供开发便利,是一个全局性公共容器。提供以下方法:1、ServletRequest getRequest()获取ServletRequest对象2、HttpServletRequest getHttpServletRequest()获取HttpServletRequest对象3、HttpSession getSession()获取HttpSession 对象4、Map getReqParam()获取页面隐藏参数5、User getCurrentUser()获取当前登录用户对象公共工具js代码引擎机制-JavaScriptEngineJavaScriptEngine是基于ScriptEngine进行封装,同时配置Spring AOP,让模型配置拥有更强的拓展性。未增加引擎之前:q:QueryEntry showCheckbox=true.showCheckbox要么是true,要么是false,如果想根据用户信息或者其他属性来判断是否展示checkbox,是做不到的增加引擎之后:%return 123=:loginUser.getUserid()?true:false;%拥有JavaScriptEngine后,模型配置就拥有很强的拓展性了。公共工具WebService WebService是基于Apache CXF,它逻辑性的为其他应用程序提供数据与服务。各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问WebService,通过WebService内部执行得到所需结果。Web Service可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他WebService应用程序可以发现并调用它部署的服务。框架在构建和使用Web Service时,主要用到以下几个关键的技术和规则:(1)XML:描述数据的标准方法。(2)SOAP:简单对象访问协议。(3)WSDL:Web服务描述语言。(4)UDDI(Universal Description,Discovery and Integration):通用描述、发现与集成,它是一种独立于平台的,基于XML语言的用于在互联网上描述商务的协议。公共工具润乾报表 润乾报表是一个纯JAVA的企业级报表工具,支持对J2EE系统的嵌入式部署,无缝集成。服务器端支持各种常见的操作系统,支持各种常见的关系数据库和各类J2 EE的应用服务器,客户端采用标准纯html方式展现,支持ie和netscape,润乾报表是领先的企业级报表分析软件。它提供了高效的报表设计方案、强大的报表展现能力、灵活的部署机制,支持强关联语义模型,并且具备强有力的填报功能和olap分析,为企业级数据分析与商业智能提供了高性能、高效率的报表系统解决方案。公共工具附件平台附件平台是将附件管理功能集合在一起的一个应用平台。框架附件管理拥有两种模式:一、附件平台模式,框架作为中介点,附件的上传、权限管理、下载等,都由附件平台进行管理,减少系统应用的压力。二、本地模式,上传的附件保存在框架应用,又框架进行管理日志管理组织机构管理用户管理角色管理字典管理菜单管理功能管理谢谢各位!此课件下载可自行编辑修改,仅供参考!此课件下载可自行编辑修改,仅供参考!感谢您的支持,我们努力做得更好!谢谢感谢您的支持,我们努力做得更好!谢谢