SSH实战OA 01:项目说明

序:
在SSH三大框架逐渐推出历史舞台的今天,写一个SSH框架的实战专栏貌似有点不符适宜,但考虑到那些还在学校苦读的莘莘学子和刚入门的同学们,如果从SSH入门学JaveEE企业级框架,本专栏应该是不错的选择。本专栏技术和思路来自于传智播客汤阳关老师的经典OA视频,想看原版教程的同学可以到传智播客的官网下载官方视频教程。这里是对传智免费公开视频的感谢,同时也做个免责声明,免得读者以为我剽窃知识还不写原著。本系列博客专栏是我工作一年之余重新感悟JAVA技术和对汤老师的视频的总结,博客内容基本基于视频教程,但并非一成不变,本系列的后面博客将不再进行类似声明。

OA是什么

OA是Office Automation的缩写,OA系统是处理组织内部的事务性工作、辅助管理、提高办公效率的系统。
日常工作的所有内容都可以归入OA处理的范畴,如文字处理、申请审批、办公用品管理、公文管理、会议管理、资料管理、知识管理、电子邮件……等等,总之只要是能够对办公有用的功能都可以有。
要根据用户的需求确定具体要有哪些功能。
这里写图片描述

目前基本版本的代码我已经托管到GitHub上面,以后可以对版本进行扩展,目前版本的主要功能有:

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

    分层

    这里写图片描述

    1. 上面调用下面,即View调用Service,Service调用Dao。
    2. 层与层之间用接口。除定义的接口外,不能使用其它层的特有类或接口。
    3. 使用实体作为DTO(Data Transfer Object,数据传输对象)

要做到任一层换掉后,其他层不受影响。我们在此项目中使用两层:View+Service即在Service中直接操作Hibernate.Session。因为如果使用三层,在Service中就会有一部分方法只是直接调用DAO中的方法。一般情况下只有在多个数据源的场合下适合引入DAO层。

关于分层的几个问题

1.一定要分层吗?
不一定。假如公司要求你写一个可以给指定员工发送短信的小程序,用于开会通知与自动发送生日祝福短信。这个程序很小,没有多少行代码,而且不变,这时不分层可以吗?完全可以呀。但我们在写程序时,还是要分层的,分层的程序结构清晰,可维护性高。

2.一定要3层吗?
不一定。分3层是推荐的,而不是必须的,应根据自己的具体情况进行安排。我们如果使用3层的结构,用起来就麻烦,因为在Service中会有一部分方法只是直接调用Dao中的方法,而Dao中的方法只是调用Session完成某操作。此时分2层更好,即在Service中可直接操作Session,以简化结构。其实Hibernate已经可以支持多种数据库。

3.一定要使用接口吗?
不一定。以前就有同学问我:“在设计程序时确定的技术在开发完成后一般不会更换的,实现类一般也不会更换,这种情况还用接口吗,一般的小项目是不是可以不使用接口?”。是的,如果不会变(一般也不会变),这是完全可以的。

我们所学习的框架、技术都是解决问题的推荐方案,而不是必须要用的。遇到问题后优先使用成熟的技术与方案,以避免很多潜在的问题,避免走不必要的弯路。

用到技术

这里写图片描述
说明:还有jQuery.validate与jQuery.treeview等小插件

代码规范

  1. 命名:使用驼峰命名法。
    a).类、接口:每个单词的首字母大写。例:MyDateConverter
    b). 变量、方法:第一个单词的首字母小写,其他单词的首字母都大写。例:myDateConverter
    c). 常量:全部字母都大写,单词之间使用’_’隔开。例,DEFAULT_PAGE_SIZE
  2. 使用有意义的名称,慎用缩写。
  3. 注释:在代码中加入适当的注释:说明步骤,与说明非简单逻辑。
  4. 空行:在代码中加入适当的空行,就像写文章时要分段一样(增强可读性)。
  5. 要格式化代码、一个java文件中的代码不要过多、一个方法中的代码不要过多。
  6. 项目的默认编码为UTF-8。
  7. 新建数据库时,数据库默认的编码为UTF-8。

代码已经托管到GitHub,OA

猜你喜欢

转载自blog.csdn.net/zhang5476499/article/details/70473611