1.1. 简介Javahg是一个开源的管理系统基础框架。
主要定位于“企业信息管理”领域,可用作企业信息管理类系统、网站后台管理类系统等。Javahg是非常强调开发的高效性、健壮性和安全性的。
Javahg 是轻量级的,简单易学,本框架以 Spring Framework 为核心、Spring MVC(相比Struts2更容易上手、更易用)作为模型视图控制器、Hibernate作为数据库操作层,此组合是Java界业内最经典、的搭配组合进行封装。前端界面风格采用了结构简单、性能优良、页面精致的 Twitter Bootstrap 作为前端展示框架。 Javahg 已内置 了一系列企业信息管理系统的基础功能,目前包括三大模块,系统管理(SYS)模块、内容管理(CMS)模块和在线办公(OA)模块。系统管理模块,包括企业组织架构(用户管理、机构管理、区域管理)、菜单管理、角色权限管理、字典管理等功能;
内容管理模块,包括内容管理(文章、链接),栏目管理、站点管理、公共留言、文件管理、前端网站展示等功能;
在线办公模块,提供简单的请假流程实例。
Javahg 提供了常用工具进行封装,包括日志工具、缓存工具、服务器端验证、数据字典、当前组织机构数据(用户、区域、部门)以及其它常用小工具等。另外还提供一个基于本基础框架的 代码生成器 ,为你生成基本模块代码,如果你使用了 Javahg 基础框架,就可以很快速开发出优秀的信息管理系统。 1.2. 为何选择1、 使用目前最主流的J2EE开发框架,简单易学,学习成本低。
2、 数据库无限制,支持MySql、Oracle、SQL Server、H2等数据库 3、 模块化设计,层次结构清晰。内置一系列企业信息管理的基础功能。 4、 操作权限控制精密细致,对所有管理链接都进行权限验证,可控制到按钮。 5、 数据权限控制精密细致,对指定数据集权限进行过滤,七种数据权限可供选择。 6、 提供基本功能模块的源代码生成器,提高开发效率及质量。 7、 提供常用工具类封装,日志、缓存、验证、字典、组织机构等,常用标签(taglib),获取当前组织机构、字典等数据。 8、 完全兼容目前浏览器(IE6、IE7+、Firefox、Chrome 等主流浏览器 )。 9、 提供目前的Activit流程引擎实例 1.3. 技术选型1、 Services相关
a) Core Framework:Spring Framework 3.2。 b) Security Framework:Apache Shiro 1.2。 c) Workflow Engine: Activit 5 .12。 2、 Web 相关 a) MVC Framework:Spring MVC 3.2。 b) Layout Decoration:SiteMesh 2.4。 c) Javascri-pt Library:JQuery 1.9。 d) CSS Framework:Twitter Bootstrap 2.3.1。 e) Javascri-pt/CSS Compressor:YUI Compressor 2.4。 f) Front Validation:JQuery Validation Plugin 1.11。 3、 Database 相关 a) ORM Framework:Hibernate 4.1。 b) Connection Pool:Alibaba Druid 1.0。 c) Bean Validation:H ibernate V alidation 5.0。 d) Cache:Ehcache 2.6。 4、 Tools 相关 a) Commons:Apache Commons b) JSON Mapper:J ackson 2.1 c) Bean Mapper: Dozer 5.3 d) Office Tools : Apache POI 3.9 e) Full-text search : Hibernate Search 4.2( Apache Lucene 3.6)、 IK Analyzer 2012_u6中文分词 f) Log Manager:Log4j 1.2 1.4. 安全考虑1、 开发语言:系统采用Java 语言开发,具有卓越的通用性、高效性、平台移植性和安全性。
2、 分层设计:(数据库层,数据访问层,业务逻辑层,展示层)层次清楚,低耦合,各层必须通过接口才能接入并进行参数校验(如:在展示层不可直接操作数据库),保证数据操作的安全。 3、 双重验证:用户表单提交双验证:包括服务器端验证及客户端验证,防止用户通过浏览器恶意修改(如不可写文本域、隐藏变量篡改、上传非法文件等),跳过客户端验证操作数据库。 4、 安全编码:用户表单提交所有数据,在服务器端都进行安全编码,防止用户提交非法脚本及SQL注入获取敏感数据等,确保数据安全。 5、 密码加密:登录用户密码进行SHA1散列加密,此加密方法是不可逆的。保证密文泄露后的安全问题。 6、 强制访问:系统对所有管理端链接都进行用户身份权限验证,防止用户直接通过URL进行未授权页面。 2. 管理功能演示2.1. 总体介绍
2.1.1. 客户端验证 2.1.2. 提交结果信息 2.2. 控制面板 2.2.1. 个人资料 2.2.2. 修改密码 2.3. 机构用户 2.3.1. 用户管理 2.3.1.1. 概述 管理登录用户管理,可根据归属公司、部门、登录名、姓名进行查询,密码采用散列加密方式,有效保证系统的安全。 2.3.1.2. 列表 2.3.1.3. 添加、修改 n 归属公司:当前用户所在公司 n 归属部门:当前用户所在部门 n 登录名:登录名只能包括中文字、英文字母、数字和下划线。 n 工号:员工工号。 n 姓名:用户的真实姓名 n 密码、确认密码:登录名的登录密码,大于3个字符。 n 用户类型:系统保留字段,暂时未用到 n 用户角色:当前用户归属的角色。 2.3.2. 机构管理 2.3.2.1. 概述 机构是对一个经营实体的统称,处于组织机构的层,对应一个企业在实际经营中的一个公司、工厂等大型实体,机构下可以设置多个子机构(公司)或部门。具体怎么样划分子机构和部门要根据企业的实际情况来着手进行。组织机构是有公司和部门之间的层次关系构成了组织机构树。 2.3.2.2. 列表 2.3.2.3. 添加、修改l 上级机构:当前机构所归属的上级机构名称。 l 归属区域:机构归属的地方区域。 l 机构名称:当前机构的名称,全称。 l 机构编码:当前机构编码,作为排序字段,升序。 l 机构类型:单位(公司)、内设机构(部门)、挂靠机构(外部部门) l 机构级别:设置机构级别,级别数值越小越高。在显示机构列表时如果设置了显示机构级别时,会过滤掉比较低的机构。 2.3.2.4. 区域选择
2.3.3. 区域管理 2.3.3.1. 概述 区域化对系统进行管理;树形表格界面,可折叠;无限层次级别;设置灵活,可随意调整栏目父子关系。 2.3.3.2. 列表
2.3.3.3. 添加、修改
2.4. 系统设置 2.4.1. 菜单管理 2.4.1.1. 列表
2.4.1.2. 添加、修改
2.4.2. 角色管理 2.4.2.1. 列表
2.4.2.2. 添加、修改
2.4.3. 字典管理 2.4.3.1. 列表
2.4.3.2. 添加、修改
2.5. 内容管理 2.5.1. 内容管理 2.5.1.1. 概述 内容发布和管理,包括:新闻文章、友情链接等。 1、 文章模型:对新闻、资料进行管理 1) 强大的可视化内容在线编辑器:提供常用的内容排版工具条;Word内容直接复制,格式不乱;提供通用模板排版格式;图片、Flash上传及添加附件功能。 2) 文件管理:提供上传的照片、文件增删功能。 3) 关键字:提供文章关键字功能。 4) 权重:提供文章排序功能,值越大越靠前。 5) 缩略图:文章缩略图片。 6) 相关文章:关联相关文章。 7) 推荐位:可推荐到首页焦点图、栏目文章推荐等。 8) 发布时间:可修改发布时间。 2、 链接模型:如友情链接内容。 2.5.1.2. 列表
2.5.1.3. 添加、修改
2.5.1.4. 图片、缩略图、附件上传
2.5.1.5. 选择相关文章
2.5.2. 统计分析 2.5.2.1. 信息量统计
2.5.3. 评论管理 2.5.3.1. 列表
2.5.4. 栏目管理 2.5.4.1. 概述 树形表格界面,可折叠;设置灵活,可随意调整栏目父子关系;支持子栏目;支持栏目排序;支持多种内容模型(文章模型、链接模型等),支持上传栏目缩了图;支持设置栏目描述及关键字,提升搜索引擎排行。 1、 导航栏显示:设置是否在网站主导航栏中显示。 2、 分类页中显示列表:是否在二级页面中显示内容列表。 3、 展现方式: 1) 默认方式:有子栏目,显示子栏目内容列表;无子栏目,直接显示该栏目的内容列表。 2) 首栏目内容列表:显示个子栏目的内容列表。 3) 栏目条内容:显示该栏目中的篇内容。 2.5.4.2. 列表
2.5.4.3. 添加、修改
2.5.5. 站点管理 2.5.5.1. 概述 对站点进行维护,支持多站点发布,可设置站点标题、描述、关键字、版权信息、模板风格等。 2.5.5.2. 列表
2.5.5.3. 添加、修改
2.5.5.4. 站点切换 2.5.6. 公共留言 2.5.6.1. 概述 留言管理:姓名、邮箱、单位、电话、留言分类(咨询、建议、批评、其它)留言内容。 2.5.6.2. 列表
2.5.7. 文件管理 2.5.7.1. 概述 提供网站中所有上传的图片、Flash及附件文件的管理功能。 2.5.7.2. 列表
2.5.7.3. 设置
2.6. 在线办公 2.6.1. 个人办公
3. 功能组件 3.1. Utils 1、 BeanMapper :Bean与Bean,Bean与Conllection的互转 2、 JaxbMapper :XML与obje-ct互转。 3、 JsonMapper:JSON与obje-ct互转。 4、 Cryptos 、 Digests :密钥工具类SHA1、MD5 5、 ExcelExcel导入导出 6、 CacheUtils:系统Cache工具类。 7、 Collections3 :集合对象工具类。 8、 CookieUtils :Cookie操作工具类 9、 DateUtils:日期时间工具类。 10、 Encodes :各种编码转换工具类。 11、 Exceptions :异常工具类。 12、 FileUtils :文件操作工具类。 13、 FreeMarkers : FreeMarkers 模板工具类。 14、 Identities :标识生成算法工具类(uuid、random) 15、 PropertiesLoader :属性文件操作工具类 16、 Reflections :Java对象操作反射工具类。 17、 StringUtils :字符串操作工具类。 18、 Threads :线程相关操作工具类。 19、 UserUtils:当前用户相关操作工具类。 20、 CmsUtils:内容管理相关操作工具类。 3.2. Taglib 1、 ckeditor.tag:HTML在线编辑器。 2、 ckfinder.tag:在线文件管理。 3、 iconselect.tag:Icon图标选择。 4、 message.tag:消息弹框。 5、 validateCode.tag:验证码。 3.3. EL Function 1、 fns.tld:系统相关EL函数。 2、 fnc.tld:内容管理相关EL函数。 3.4. Javascri-pt
Jquery、Jbox、Jquery Validate、zTree、My7DatePicker、treeTable、CKEditor、CKFinder