OA系统

自学java编程也有一段时间了,一直在学习各个知识点,但总感觉是在纸上谈兵。因此,找到一个OA系统的框架来自己进行添枝加叶,一方面进一步学习相关知识,一方面也增加自己的动手能力。

OA系统简介

OA是Office Automation的缩写,也就是办公自动化。OA系统是处理组织内部的事务性工作、辅助管理、提高办公效率的系统。
日常工作所有内容都可以归入OA的范畴,如文字处理、申请审批、资料管理等待,只要对办公有用,都可以归入OA的范畴。具体的功能实现还要来看用户的定制。但这个需求需要对用户深入的准确挖掘,这一部分是很重要的基础。
软件设计流程:

  1. 需求分析:深入了解客户的需求,准确设计客户所需要的功能。
  2. 设计:设计功能框架、设计软件的界面等。 这里 才是最重要的部分。
  3. 编程:按照设计规划进行编程,使用代码管理工具来进行分工。要养成良好的代码习惯,无论是格式还是内容,这对后续的扩展、维护有很大的便利。
  4. 测试:各种测试,比如数据的边界与合法性、异常提示、压力、稳定性、安全性等。

此次OA系统开发主要需要做的具体功能模块有4个:

  • 组织机构管理
  • 系统权限
  • 内部论坛
  • 审批流转

OA的整体设计

分层

为了软件的扩展,进一步的解耦,分层是必须的。按照经典的做法主要分为3个层次:
使用分层需要注意 :层与层之间要用接口,且不能调用其他层特有的类或者接口。层与层之间可以DTO(Data Transfer Object)来传递信息。

  • View(显示层) : 基于web的JSP、Servlet、Struts、Spring等
  • Service(业务层) : Pojo, Domain, Session EJB, Spring
  • Dao(数据访问层) : JDBC, IBatis, Hibernate

代码规范

java通用代码规范。要使用有意义的名称,慎用缩写。在代码中加入适当的注释,既方便自己回头查看,有可以帮助后来的人进行维护。总之,要保证代码的有效、清晰、简洁。

约定

乱码问题是一个很令人头疼的问题。但事实上,乱码可以说是乱用编码。如果编码规则设置一样的,那么这就不是问题。最常用的UTF-8是最好的选择。

配置环境

  1. 在MySQL中通过status命令来查看状态信息,是否已经设置为utf-8。接下来,我们就开始建立数据库:

    create database oa default character set utf8;

  2. 在MyEclipse中创建一个web工程。注意,创建之后在属性中更改编码为utf-8。

  3. 配置JUnit4。可以通过Build Path->Add liabraries来添加JUnit。但是这种方式在本地电脑上可以使用,换一个环境可能就不适用了。所以最好将jar包copy到WebRoot\WEB-INF\lib文件夹(这是jar包所在的文件)中。
  4. 配置struts2。将struts-2.1.6\apps\struts2-blank-2.1.6\WEB-INF\lib中的jar包复制到项目的lib文件夹中。然后,将Struts2的主过滤器放到web.xml中。接着将struts.xml放入src文件夹中,并定制属性。
  5. 配置Hibernate。首先是jar包,需要的包很多,可以参考这里。接下来是配置文件。在hibernate的\project\etc中将hibernate.cfg.xml模板放入MyEclipse的src文件中,并配置数据库信息、映射配置及其他一些配置。再将一个.hbm.xml文件copy到目录下,用的时候再进行更改。
  6. 配置Spring。jar包主要是核心包、日志commons-logging包、AOP和代理包。然后是配置文件applicationContext.xml,

前面配置好了就是进行框架之间的整合,可以在这里来看看具体的步骤,写的非常详细。

  1. 配置log日志。将slf4j和log4j的jar包放入lib文件夹中。然后,在Hibernate的\project\etc文件夹中将log4j.properties放到项目中。这个配置文件就是log4j的配置信息。可以更改日志显示的级别(debug, info, warn, error, fatal)。
  2. 配置好以上各个步骤后,可以将所有的资源文件进行分类整理。将配置文件放入config文件夹中;将test测试代码单独放到test文件夹中;将css和js文件分别放入style和script文件夹中;jsp文件放入WEB-INFO文件夹的jsp文件夹中。

到这里,环境已经配置完毕。整合ssh还是有一点麻烦的,各个jar包务必要整理好。

系统管理设计

系统管理是整个OA系统的基础功能,其他模块都要依赖于这个模块。大方向上说,系统管理主要分为三个:岗位管理、部门管理、用户管理。
大致流程是这样的:设计实体(表),构造Dao,写Service,设计action,最后设计jsp。