《OA开发项目介绍(共4页).doc》由会员分享,可在线阅读,更多相关《OA开发项目介绍(共4页).doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上1如果没有办公自动化 l 沟通不畅,上下级之间、同事之间没有很好的沟通渠道l 办事效率低,不能实现流程的自动化l 查找资料困难、并且资料容易丢失l 对所做过的事情做到有据可查l 先进知识、经验、技巧不能得到充分共享和学习l 不能监控下属的工作进展、了解他的真实想法和困难l 每天都浪费大量的纸张、电话费、时间、精力。 将人从繁琐、无序、低端的工作中解放出来处理更有价值、更重要的事务,整体提高了企业办事效率和对信息的可控性,使企业管理趋于完善,提高执行力,最终实现企业市场竞争力全面提升的目标.2.系统功能架构项目描述:分三个核心组件:组织机构、权限控制、审批管理。六个基本
2、组件:信息发布系统、考勤管理、办公用品管理、报销管理、日程安排、名片管理。组织机构主要是人事部门管理涉及到部门与员工的复杂调动与离职等;权限控制是给不同的员工赋予不同的权限;审批管理是拥有审批权的管理者处理员工提交的各种单据;考勤管理有包括员工上下班打卡、员工请假加班等各种考勤信息管理;办公用品管理是对办公用品的管理包括办公用品的采购、申请、库存报警等的管理;报销管理是针对员工出于公司的活动需要报销的管理像差旅费、食宿费等,当员工的报销单得到相应审批人的审批通过就可以领款;日程安排分办公日程安排和个人日程安排,拥有办公日程安排的负责人可以安排办公人员一周、一个月的工作事宜,以便办公人员工作高效
3、、有条不紊的进行,个人日程安排是登录者自己对自己的日程安排;名片管理是当前用户可以发送自己的名片给对方,也可以建立自己的联系好友,还可以给自己的好友分组;信息发布系统是发布一些最新的新闻资讯,公告通知。3.系统功能流程4.主要技术介绍n Struts 规范、清晰的MVC框架,只需编写相应组件、不必再考虑架构的设计n Spring Spring IoC 实现组件控制关系的转移 Spring AOP 面向切面的编程 Spring对Hibernate的整合n Hibernate O/R Mapping框架、将对数据库操作转换为对对象的操作、更符合面向对象的编程思想,大大简化程序的编写和维护的难度,提
4、高重用5.1系统架构设计n 技术先进性、架构灵活、易于维护n 使用了当今最为流行Struts+Spring+Hibernate的N层架构模式,架构清晰、开发效率高、易维护升级n 使用Struts MVC框架来规范Web层的架构n 使用业务外观模式封装对DAO层的复杂调用n 使用Hibernate的封装对数据库的访问、使得访问数据库简单、易维护、易移植、提高重用、更符合面向对象的编程思想n 使用Spring的IoC来实现组件之间的依赖关系注入,降低层与层之间的耦合、使得上层组件依赖于抽象而不依赖实现、易于维护,架构更加灵活n 使用Spring的AOP编程实现事务处理、日志服务等与业务无关的系统服
5、务,使得代码简洁、组件职责清晰、并且易于维护n 使用Spring提供的与Hibernate的整合方案简化代码5.2 组件设计n View层:负责数据的展现,使用JSP、 JSTL、EL、Struts taglib技术, 为使表现层简单容易维护,禁止使用java脚本,又因Struts的许多taglib与Struts框架绑定,所以尽量使用JSTL、ELn Web层: 负责页面逻辑的控制,使用Struts Action,通过调用业务委托接口来调用具体的业务组件的实例,而业务组件的实例是通过Spring的IoC容器取得的n Service层(业务逻辑层): 负责处理业务,封装对DAO层的访问细节,使用
6、业务委托模式使控制层与业务实现分离,即客户通过调用业务委托接口来调用具体的业务组件的实例,避免控制层与业务层的藕合带来的维护或升级带来的困难n DAO层: n 将对持久层数据的基本增、删、查、改等操作提取到BaseDAO中n BaseDAO继承Spring的HibernateDaoSupport来简化代码编写n 各模块DAO继承BaseDAO实现复杂的数据访问,提高重用n 通过Spring AOP为DAO生成代理对象来为DAO添加事务服务n 由IoC容器将DAO的代理实例注入到业务组件中,业务组件通过调用DAO的委托接口调用DAO对象,使得上层组件不直接依赖于DAO的实现类,使得持久层更换或修
7、改不影响上层组件n 持久层:负责对象到关系的映射,由Hibernate实现DAO设计:继层和引用,那种方式更好?将对持久层数的基本的增、删、查、改等操作提取到BaseDAO中,各个模块的DAO继承BaseDAO,实现更为复杂的持久层访问;又考虑到持久层可能会变换,如现在使用数据库作为持久存储层,将来可能换成使用文件,这就就需要将访问数据库的改成访问文件的,导致使用的业务层也要修改,为解决这个问题,必须使得业务层不直接依赖的实现,因此为所有的提供了业务层调用的接口,由Spring的IoC容器将实际使用的DAO实例注入到业务组件中BaseDAO继承了HibernateDaoTemplate, Hi
8、bernateDaoTemplate封装了Hibernate对数据库的操作,只需注入一个Sessionfactory对象,session的管理和事务都交给Spring处理Service设计:考虑到将来业务规则的变化或系统的升级,使用了业务委托模式来使控制层与业务实现分离,即客户通过调用业务委托接口来调用具体的实现类的实例,避免控制层与业务层的偶合带来的维护或升级带来的困难WEB设计:层通过调用业务委托接口来调用具体的业务组件的实例,而业务组件的实例是通过Spring的IoC容器取得的7.核心组件介绍n 组织结构 公司的组织结构,这是一个企业应用系统必不可少的模块n 权限管理 权限控制是一个系统
9、中非常重要的模块,不是每个用户都能操作系统中的所有功能、如普通员工没有部门维护、办公用品采购等功能的操作权限n 审批管理 日常办公中的很多事务需要经过领导或相关部门的审核才能正式生效,能这种审批通过手工处理的效率很低 SKYOA系统中的审批管理就是使得这些日常事务或文档的审批能自动化的流转,坐在家中也能审批文档,节约文件传递的时间,提高办事效率建立审批流程责任描述:权限控制的原理权限控制是控制用户是否有权限操作某些功能,而功能的实现是通过访问对象来完成的,如调用Action的某个方法来完成一个功能,因此可以通过控制用户是否有权操作Action的某个方法来控制用户是否有权操作此方法对应的功能通常
10、一组用户都具有相同的权限,所以可以对用户进行分组管理,然后给每个组设置权限,而不必为每个用户分配权限,具有相同权限的一个组成为角色数据库设计权限控制实现1系统初始化时,将需要控制的功能保存到数据库的系统功能表2实现角色管理、角色成员管理、角色权限管理3用户登录时将用户的权限存放在Session中用户登录后将用户的账号信息、员工信息、用户的权限封装到UserInfo对象中,class UserInfoprivate Account account;private Employee emp;private List rights;/其中放该用户有权访问的功能对象。4第一次访问系统时读取出需要进行控
11、制的功能,并缓存5权限控制为了使权限控制的代码不与页面或Action混合在一起,可以使用过滤器、前端控制器、或Spring的AOP方式实现,在此使用前端控制器方式,即通过定制Struts的请求处理器(RequestProcessor),在RequestProcessor调用Action处理请求前,判断用户是否有权限访问该Action的相应方法,请求处理器类RequestProcessor介绍:客户端发出的所有对Action的请求首先经过中心控制器ActionServlet,即调用中心控制器的doGet()或doPost() 方法,然后中心控制器调用RequestProcessor的process方法处理请求,RequestProcessor在处理请求之前会先做一些预处理,如处理国际化、创建ActionForm、姜请求参数设置到ActionForm中。,最后调用Action的方法处理请求,主要源码如下:专心-专注-专业