首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

共享一个自各儿设计开发的企业应用开发框架

2012-10-08 
共享一个自己设计开发的企业应用开发框架Clary Platform 设计说明文档 随着社会经济管理活动的发展,企业和

共享一个自己设计开发的企业应用开发框架
                      Clary Platform 设计说明文档

随着社会经济管理活动的发展,企业和社会对信息化水平的要求越高,需求不断变更和新需求层出不穷,尽管新的技术和平台应运而生,但是对于企业应用的综合需求,在项目业务需求要求下还是需要耗费很多精力,为了快速满足变化的需求,让项目人员更多面对业务,而不在系统运行支持环境开发中浪费太多精力,特利用J2EE平台下稳定的开发技术和框架实现企业应用框架Clary Platform。

Clary平台采用通用的MVC模式设计,集成了安全管理、权限系统、系统管理、用户管理等常用平台管理功能。

系统集中使用了Spring(2.0),Struts(1.3),Hibernate(3.0),Acegi(1.0),Js脚本验证框架等常用技术,开发门槛较低,但是对于领域建模要求较高,对于业务需求建模时需综合考虑各框架和技术特点,以便提高系统性能和扩展性。同时为了兼容不同应用服务器的实现的差异,系统配置和涉及针对不同的浏览器进行了兼容性重构,以期在不同系统部署能够降低难度。

以下内容分别介绍具体技术的使用和软件结构并具体分析系统功能的设计原则:

技术使用
1.视图层
使用Jsp技术和Struts标签 实现表单数据和视图状态的管理,使用validation_cn.js脚本库及扩充验证规则实现表单数据客户端校验。
2.业务层和数据持久化层
   通过Spring Ioc容器实现所有Bean的管理,通过Aop的方式配置操作事务,Hibernate工具实现对象的持久化,Spring,Struts,Hibernate的有效整合实现了完整的流程,Acegi的框架同Spring完美无缝连接,让系统安全风险降到更低。

实现方式:

1.配置文件整合
Web配置文件:web.xml
Struts配置文件:struts-config.xml 该文档通过插件创建Spring web配置文件
Spring配置文件:ApplicationContext.xml ,该文档导入了Security Dao Serivce 等子配置文档
  
   Web.xml文档通过Spring ContextListener创建父上下文,以可以通过Spring提供的WebApplicationContextUtils或者Spring上下文,Struts配置文件导入Spring
Web上下文
在Spring dao上下文中定义了Hiberante的sessionFactory等管理对象,并通过Aop方式在serivice文件中定义了事务。
Acegi的安全规则在security定义

2.系统基础架构具体实现
 
A.视图
视图层采用采用了通用的技术,Jsp,struts标签,Displaytable控件实现分页和排序

主体页面结构


系统采用根据管理员配置的权限通过自定义的菜单展示标签渲染,可以实现左边树形图和导航条 菜单详细页面的三级联动,即任意点击一个部分都会导致其他部分相应展示对应的信息。

该框架表格展示采用功能强大,渲染能力强的Displaytable控件,实现分页展示,页面排序和数据其他常见文件格式导出。
由于Displaytable只提供了pagingList接口,为了实现通用的编程模型,系统对其进行了二次封装,简化了分页的数据查询,提供一致性的方法调用,同时由于该控件在分页和排序实现上未捕获页面的查询条件参数,为了在同一视图实现数据一致,也进行了代码重构,重构后的已打包到lib中。
  页面脚本验证主要通过焦点失去和表单提交时双重验证,验证提示友好,并可定义验证提示方式,基于原有验证框架未有对表单提交时统一验证,为了实现数据提交时候的最后把关,也进行了一定的修改,该框架调用方式友好,只需设置css样式,创建一个验证器便可,同时可以动态扩从验证规则。

B.后台处理

系统定义了统一的Action基类,所有Action需要继承该基类,该基类实现了用户信息加载(用户属性和用户权限等),并提供了通用的业务方法。






C.安全验证Acegi

Acegi是一个优秀的安全验证模块,可以同spring无缝集成,但是面对复杂的用户权限管理,我们对其进行了扩从,实现了自定义的权限校验规则,可对系统管理定义的权限规则自定义验证规则实现类,支持静态定义和动态验证想结合,大大提高系统权限管理能力。
D.持久层

持久层采用了采用和Hiberante框架,Vo和映射文件通过Powerdesinger工具生成。
脚本也通过其生成,当然也做了一些手动调整,以适用更好的性能。
该系统定义了一个通用的Dao,免去了建立更多Dao类的麻烦,使用时只需要把classname依赖注入到通用dao便可,dao里也实现了通用的操作方法。



需要注意的时,为了避免页面缓存,所有页面均禁止了缓存,为了能够返回前一个页面,所以系统会自动对前一个页面的参数和路径进行了Url编码,作为参数传给该页面,当然该页面也会进行一个页面操作,所以该页面会有一个隐藏域继续参数,然后后台会自动解析参数,重构Request参数,由于各个应用服务器提供商对request参数map是禁止修改了,所以针对不同的版本设计了针对性的处理器。当然改自动返回功能不需要太多逻辑,只要调用通用代码和标签便可。



系统管理模块

该架构所有的功能都是权限自包含的,本架构定义了两种权限部门权限和资源权限(菜单),每个操作员只能在自己权限内操作,而且视图页面也只显示有权限的数据信息,本系统权限只是粗粒度控制,未涉及到方法领域。
  
部门管理:
     系统只展示当前用户又权限的部门,用户可对其进行操作。
用户管理
     系统默认定义了一个超级管理员,具有所有权限,改用户用户名不可修改,用户信息不可删除。
参数管理
     自定义一些参数字典,方便企业业务数据调用
日志管理
      基于Aop机制自定生成用户操作日志,同时也可以根据提供的方法添加日志信息

通知管理

     定义通知和接收部门,具有接受部门权限的用户可在首页查看。
资源管理
  定义菜单,设置菜单属性。

权限管理
   由于原有的用户-角色权限管理机制配置复杂,而且无法实现批量管理,用户难以分组等
鉴于此,在该机制基础上我们涉及了基于团队的权限管理机制。
   在此提出了几个概念:
   权限模版: 定义了权限明细等
   虚拟组:  根据团队角色 进行 用户和权限模版的绑定, 该虚拟组内用户共享对应的权限模版的所有权限。







热点排行