1. JeeSite概述
1.1. 简介
JeeSite是一个开源的企业信息管理系统基础框架。主要定位于“企业信息管理”领域,可用作企业信息管理类系统、网站后台管理类系统等。JeeSite是非常强调开发的高效性、健壮性和安全性的。
JeeSite是轻量级的,简单易学,本框架以Spring Framework为核心、Spring MVC(相比Struts2更容易上手、更易用)作为模型视图控制器、Spring Data JPA + Hibernate作为数据库操作层,此组合是Java界业内最经典、最优的搭配组合进行封装。前端界面风格采用了结构简单、性能优良、页面精致的 Twitter Bootstrap作为前端展示框架。
JeeSite已内置了一系列企业信息管理系统的基础功能,目前包括三大模块,系统管理(SYS)模块、内容管理(CMS)模块和在线办公(OA)模块。系统管理模块,包括企业组织架构(用户管理、机构管理、区域管理)、菜单管理、角色权限管理、字典管理等功能;内容管理模块,包括内容管理(文章、链接),栏目管理、站点管理、公共留言、文件管理、前端网站展示等功能;在线办公模块,提供简单的请假流程实例。
JeeSite提供了常用工具进行封装,包括日志工具、缓存工具、服务器端验证、数据字典、当前组织机构数据(用户、区域、部门)以及其它常用小工具等。另外还提供一个基于本基础框架的代码生成器,为你生成基本模块代码,如果你使用了JeeSite基础框架,就可以很快速开发出优秀的信息管理系统。
1.2. 为何选择
1、 使用Apache License 2.0协议,源代码完全开源,无商业限制。
2、 使用目前最主流的J2EE开发框架,简单易学,学习成本低。
3、 数据库无限制,支持MySql、Oracle、SQL Server、H2等数据库
4、 模块化设计,层次结构清晰。内置一系列企业信息管理的基础功能。
5、 操作权限控制精密细致,对所有管理链接都进行权限验证,可控制到按钮。
6、 数据权限控制精密细致,对指定数据集权限进行过滤,七种数据权限可供选择。
7、 提供基本功能模块的源代码生成器,提高开发效率及质量。
8、 提供常用工具类封装,日志、缓存、验证、字典、组织机构等,常用标签(taglib),获取当前组织机构、字典等数据。
9、 完全兼容目前最流行浏览器(IE6、IE7+、Firefox、Chrome)。
10、 提供目前最流行的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) JavaScript Library:JQuery 1.9。
d) CSS Framework:Twitter Bootstrap 2.3.1。
e) JavaScript/CSS Compressor:YUI Compressor 2.4。
f) Front Validation:JQuery Validation Plugin 1.11。
3、 Database相关
a) ORM Framework:Spring Data JPA 1.3、Hibernate 4.1。
b) Connection Pool:Alibaba Druid 0.2。
c) Bean Validation:Hibernate Validation 5.0。
d) Cache:Ehcache 2.6。
4、 Tools 相关
a) Commons:Apache Commons
b) JSON Mapper:Jackson 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.2. 修改密码
2.4. 机构用户
2.4.1. 用户管理
2.4.1.1. 概述
系统用户维护,指定区域、部门、登录名、密码(密码采用散列加密方式,有效保证系统的安全)及角色等
2.4.1.2. 列表
2.4.1.3. 添加、修改
2.4.2. 机构管理
2.4.2.1. 概述
对用户进行机构管理,机构与区域为附属关系;树形表格界面,可折叠;无限层次级别;设置灵活,可随意调整栏目父子关系。
2.4.2.2. 列表
2.4.2.3. 添加、修改
2.4.2.4. 区域选择
2.4.3. 区域管理
2.4.3.1. 概述
区域化对系统进行管理;树形表格界面,可折叠;无限层次级别;设置灵活,可随意调整栏目父子关系。
2.4.3.2. 列表
2.4.3.3. 添加、修改
2.5. 系统设置
2.5.1. 菜单管理
2.5.1.1. 列表
2.5.1.2. 添加、修改
2.5.2. 角色管理
2.5.2.1. 列表
2.5.2.2. 添加、修改
2.5.3. 字典管理
2.5.3.1. 列表
2.5.3.2. 添加、修改
2.6. 内容管理
2.6.1. 内容管理
2.6.1.1. 概述
内容发布和管理,包括:新闻文章、友情链接等。
1、 文章模型:对新闻、资料进行管理
1) 强大的可视化内容在线编辑器:提供常用的内容排版工具条;Word内容直接复制,格式不乱;提供通用模板排版格式;图片、Flash上传及添加附件功能。
2) 文件管理:提供上传的照片、文件增删功能。
3) 关键字:提供文章关键字功能。
4) 权重:提供文章排序功能,值越大越靠前。
5) 缩略图:文章缩略图片。
6) 相关文章:关联相关文章。
7) 推荐位:可推荐到首页焦点图、栏目文章推荐等。
8) 发布时间:可修改发布时间。
2、 链接模型:如友情链接内容。
2.6.1.2. 列表
2.6.1.3. 添加、修改
2.6.1.4. 图片、缩略图、附件上传
2.6.1.5. 选择相关文章
2.6.2. 统计分析
2.6.2.1. 信息量统计
2.6.3. 评论管理
2.6.3.1. 列表
2.6.4. 栏目管理
2.6.4.1. 概述
树形表格界面,可折叠;设置灵活,可随意调整栏目父子关系;支持无限级子栏目;支持栏目排序;支持多种内容模型(文章模型、链接模型等),支持上传栏目缩了图;支持设置栏目描述及关键字,提升搜索引擎排行。
1、 导航栏显示:设置是否在网站主导航栏中显示。
2、 分类页中显示列表:是否在二级页面中显示内容列表。
3、 展现方式:
1) 默认方式:有子栏目,显示子栏目内容列表;无子栏目,直接显示该栏目的内容列表。
2) 首栏目内容列表:显示第一个子栏目的内容列表。
3) 栏目第一条内容:显示该栏目中的第一篇内容。
2.6.4.2. 列表
2.6.4.3. 添加、修改
2.6.5. 站点管理
2.6.5.1. 概述
对站点进行维护,支持多站点发布,可设置站点标题、描述、关键字、版权信息、模板风格等。
2.6.5.2. 列表
2.6.5.3. 添加、修改
2.6.5.4. 站点切换
2.6.6. 公共留言
2.6.6.1. 概述
留言管理:姓名、邮箱、单位、电话、留言分类(咨询、建议、批评、其它)留言内容。
2.6.6.2. 列表
2.6.6.3. 审核
2.6.7. 文件管理
2.6.7.1. 概述
提供网站中所有上传的图片、Flash及附件文件的管理功能。
2.6.7.2. 列表
2.6.7.3. 设置
2.6.8. 网站展示(基础主题)
2.6.8.1. 首页
2.6.8.2. 二级栏目列表页
2.6.8.3. 二级文章列表页
2.6.8.4. 文章详情页
2.6.8.5. 搜索页(全文检索)
2.6.8.6. 公共留言页
2.6.8.7. 站点地图页
2.7. 在线办公
2.7.1. 个人办公
3. 功能组件
3.1. Utils
1、 BeanMapper:Bean与Bean,Bean与Conllection的互转
2、 JaxbMapper:XML与Object互转。
3、 JsonMapper:JSON与Object互转。
4、 Cryptos、Digests:密钥工具类SHA1、MD5
5、 ExcelExcel导入导出:http://thinkgem.iteye.com/blog/1833431
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. JavaScript
Jquery、Jbox、Jquery Validate、zTree、My7DatePicker、treeTable、CKEditor、CKFinder
4. 快速体验
4.1. 在线体验
在线体验地址(感谢刘杰提供):http://demo.jeesite.com:1234/jeesite
4.2. 本地体验
1、 具备运行环境:JDK1.6、Maven3.0、MySql。
2、 修改src\main\resources\application.properties文件中的数据库设置参数。
3、 根据修改参数创建对应MySql数据库(数据库编码:UTF-8)如果使用其它数据库请参考JeeSite Developer.docx文档。
4、 运行bin\resresh-db\refresh-db.bat脚本,即可导入表结构及演示数据
5、 运行bin\jetty.bat,启动Web服务器(第一次运行,需要下载依赖jar包,请耐心等待)。
6、 最高管理员账号,用户名:thinkgem 密码:admin
5. 交流、反馈、参与贡献
QQ群:127515876
E-mail:thinkgem@163.com
Github:https://github.com/thinkgem/jeesite
支持JeeSite:http://jeesite.com/donation.html
如果你想参与进来共同完善它或有更好的建议,请联系我吧(^_^)。
6. 版权声明
本软件使用 Apache License 2.0 协议,请严格遵照协议内容:
1. 需要给代码的用户一份Apache Licence
2. 如果你修改了代码,需要在被修改的文件中说明。
3. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
4. 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。
3. Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售
7. 未来开发计划
1、 代码生成器:自动建立表结构、生成的mvc中包括属性字段,哪些可作为查询条件等等。
2、 模块管理功能:可方便增减模块,如内容管理模块不需要,可直接启用或停用。
3、 内容管理模块:文章评论、完善内容关键字、图片模型、专题功能、会员功能。
4、 添加通用模块:通知通告功能、短信、邮件群发功能。
5、 公共工具封装:嵌入地图、生成报表、WebService
6、 移动客户端:暂定为Android客户端开发