# kensite_cms **Repository Path**: fireworkstudio/kensite_cms ## Basic Information - **Project Name**: kensite_cms - **Description**: KenSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的开源Java EE快速开发平台。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 178 - **Created**: 2017-03-30 - **Last Updated**: 2020-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # kensite快速开发框架完整开源版J2EE代码 ## 平台简介 KenSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的**开源**Java EE快速开发平台。 KenSite本身是以Spring Framework为核心容器,Spring MVC为模型视图控制器,MyBatis为数据访问层, Apache Shiro为权限授权层,Ehcahe对常用数据进行缓存,Quartz为定时任务计划管理。 KenSite 提供了常用工具进行封装,包括日志工具、缓存工具、服务器端验证、数据字典、当前组织机构数据以及其它常用小工具等。另外还提供一个强大的在线 **代码生成** 工具,直接生成controller、service、domain、mapper、mybatis xml、jsp等文件, 前端显示基于easyui,一键生成就可以直接使用包括新增修改删除等常规操作。 如果你使用了KenSite基础框架,就可以很高效的快速开发出,优秀的信息管理系统。 **[详细介绍请点这里](http://www.seeyoui.com/2017/02/04/kensite-environment.html)** **[5分钟开发一个模块请点这里](http://www.seeyoui.com/2017/02/05/kensite-develop-base.html)** ## Kensite_cms 内容发布系统简介 Kensite cms 内容发布系统是基于Kensite开发平台搭建,支持多站点,自带两个演示实例,一个是社区示例,一个是论坛示例。后台拥有站点、导航、文章、评论、收藏、留言板、标签云等模块,并支持标签模版,实现前端与后台业务分离,前端所有数据的展现均可通过Kensite cms 自定义标签实现,新增修改删除等操作通过ajax调用接口实现。 内容管理系统只是开发框架附带开发的一个子单元,并非核心,此开发框架的核心是作为一套快速开发框架,可以应用到各种管理系统的开发中,极大的提高开发效率,降低开发成本。此开发框架是我们公司一直在使用的框架,简单易学,可扩展性强,培训机构出来的毫无经验的实习生都可以很快上手,已经经过了好多个项目的洗礼,绝对足够坚挺。 ## 特别感谢 此项目之前一直都是放在github上的,本来是只是想换个项目托管的地方,看到有个自荐功能,就点了一下,没想到获得了大家的关注,在此特别感谢大家的支持。 在此特别得提一下对此框架帮助最大的**jeesite**,框架搭建之初,从此框架上面学习到了很多很多,kensite的命名也是为了向其致敬,后来慢慢加入了很多自己的东西进去,才敢拿出来献丑。~·~ 感谢 **咖啡兔** 的kft-activiti-demo,在此上面学习到了框架集成流程引擎的方法和操作流程流转的设计思路。 除此之外的我会抽时间整理一下,都罗列在此的。 ## 内置功能 1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 2. 部门管理:配置系统组织机构,无限层级,树结构展现,可随意调整上下级。 4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。 5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护,如:是否、男女、类别、级别等。 7. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 8. 连接池监视:监视当期系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。 9. 数据库建模:在线创建数据库表及字段,并可进行可视化配置各字段前端显示组件,表单即可显示对应组件。 10. 定时任务计划:后台可视化配置任务计划执行,基于Quartz支持可视化配置。 11. 通用上传下载:单个多个附件上传,支持断点上传和断点下载。 12. 内容管理:多站点管理,文章发布等,自带一套完整的JSP自定义标签。 13. 消息推送:平台集成极光推送api、邮件发送、短信发送。 14. web通信:集成websocket,前端自带一个聊天室。 15. 导出功能:excel导出与word导出。 16. 统计图表设计器:可视化配置echarts统计图表,支持柱状图、折线图、饼图、仪表等可视化配置,不需要编码。 17. 流程建模:可视化流程设计器在线设计流程,可通过少量代码实现任意业务审批流程的签收、通过、驳回、跟踪等操作。 18. 还有很多,请在使用中自行发现吧。 ## 为何选择KenSite 1. 使用 [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0) 协议,源代码完全开源,无商业限制。 2. 使用目前主流的Java EE开发框架,简单易学,学习成本低。 3. 数据库无限制,目前支持MySql、Oracle,可扩充SQL Server、PostgreSQL、H2等。 4. 模块化设计,层次结构清晰。内置一系列内容发布系统基础功能。 5. 操作权限控制精密细致,对所有管理链接都进行权限验证,可控制到按钮。 6. 数据权限控制精密细致,对指定数据集权限进行过滤,七种数据权限可供选择。 7. 提供在线功能代码生成工具,提高开发效率及质量。 8. 提供常用工具类封装,日志、缓存、验证、字典、组织机构等,常用标签(taglib),获取当前组织机构、字典等数据。 9. 兼容目前最流行浏览器(IE7+、Chrome、Firefox)IE6也支持,但体验效果差。 ## 技术选型 1、后端 * 核心框架:Spring Framework 4.0 * 安全框架:Apache Shiro 1.2 * 视图框架:Spring MVC 4.0 * 服务端验证:Hibernate Validator 5.1 * 定时任务计划:Quartz * 流程引擎:activiti 5.21.0 * 持久层框架:MyBatis 3.2 * 数据库连接池:Alibaba Druid 1.0 * 缓存框架:Ehcache 2.6、Redis * 日志管理:SLF4J 1.7、Log4j * 全文检索:lucene * 验证码:patchca * WebService:CXF webservice * 工具类:Apache Commons、Jackson 2.2、Xstream 1.4、Dozer 5.3、POI 3.9 2、前端 * JS框架:jQuery 1.9 * CSS框架:Twitter Bootstrap 2.3.1 * 前端组件:easyui * 客户端验证:JQuery Validation Plugin 1.11 * 富文本:Ueditor * 对话框:layer、jquery-ui * 上传空间:uploadify * 树结构控件:jQuery zTree * 日期控件: My97DatePicker * web excel插件:handsontable * 统计图表:echarts 4、平台 * 服务器中间件:在Java EE 5规范(Servlet 2.5、JSP 2.1)下开发,支持应用服务器中间件 有Tomcat 6、Jboss 7、WebLogic 10、WebSphere 8。 * 数据库支持:目前仅提供MySql和Oracle数据库的支持,但不限于数据库,平台留有其它数据库支持接口, 可方便更改为其它数据库,如:SqlServer 2008、MySql 5.5、H2等 * 开发环境:Java EE、Eclipse、Maven、Git ## 安全考虑 1. 开发语言:系统采用Java 语言开发,具有卓越的通用性、高效性、平台移植性和安全性。 2. 分层设计:(数据库层,数据访问层,业务逻辑层,展示层)层次清楚,低耦合,各层必须通过接口才能接入并进行参数校验(如:在展示层不可直接操作数据库),保证数据操作的安全。 3. 双重验证:用户表单提交双验证:包括服务器端验证及客户端验证,防止用户通过浏览器恶意修改(如不可写文本域、隐藏变量篡改、上传非法文件等),跳过客户端验证操作数据库。 4. 安全编码:用户表单提交所有数据,在服务器端都进行安全编码,防止用户提交非法脚本及SQL注入获取敏感数据等,确保数据安全。 5. 密码加密:登录用户密码进行MD5加密,此加密方法是不可逆的。保证密文泄露后的安全问题。 6. 强制访问:系统对所有管理端链接都进行用户身份权限验证,防止用户直接填写url进行访问。 ## 快速体验 [帮助手册](http://www.seeyoui.com/2017/02/04/kensite-environment.html) 1. 具备运行环境:JDK1.7+、Maven3.0+、MySql5+或Oracle10g+。 2. 修改src\main\resources\kensite.properties文件中的数据库设置参数。 3. 根据修改参数创建对应MySql或Oracle数据库用户和参数。 4. 找到src\main\resources\db\sys目录,执行对应数据库初始化sql文件。 5. 运行bin\run-tomcat7.bat或bin\run-jetty.bat,启动Web服务器(第一次运行,需要下载依赖jar包,请耐心等待)。 6. 最高管理员账号,用户名:system 密码:system。 ## 常见问题 1. 快速启动:详细说明请参考 **[平台环境搭建](http://www.seeyoui.com/2017/02/04/kensite-environment.html)** ,这里一步一步的详细的介绍了如何搭建kensite平台及平台所需环境,以及如何启动等。 ## 更新记录 ### V3.1.0 2017‎年‎07‎月21日 ‏17:50:24 星期五 1. 框架集成activiti流程引擎,实现流程画布可视化编辑流程,流程启动、签收、办理、跟踪、办理意见反馈等功能 2. 编写请假流程demo演示案例,移除上版本的请假信息列表(list.jsp),采用通用流程待办和流程已办列表,以及流程启动列表 3. 流程表单需要手动编写jsp文件,后续会增加流程表单采用数据建模的数据库表及字段配置,进而增加对应的代码生成器,提升开发效率 4. 涉及到的角色及用户对应关系:员工角色(ken)->部门经理(ken)->人事(promise),初始密码均为123456 5. 系统更新方式:参考V3.0.0的第5和第6步骤 6. 如果你有好的意见和建议可以加入QQ群反馈给我,我会继续完善这个框架,请大家持续关注 ### V3.0.0 2017‎年‎06‎月‎08日 ‏20:50:24 星期四 1. 框架初步集成activiti流程引擎,实现可视化流程编辑,流程签收、通过、驳回、跟踪等操作 2. 编写请假流程demo演示案例,演示如何自定义流程表单和数据信息列表、如何添加流程操作按钮、如何进行签收和办理操作 3. 由于是初步集成,功能还不怎么强大,需要小伙伴们有一定的代码开发功底,具备的小伙伴就可以参考请假流程demo实现自己任意的审批流程了 4. 流程引擎将继续发展,接下来将规范流程前后台代码,封装更多activiti的api方法,提供流程节点挂接表单(表单暂时还需要手动编写,以后会考虑加入表单设计器) 5. 想要先睹为快的小伙伴自行获取最新代码,执行db文件夹下对应数据库的sys和act的初始化sql语句,再启动项目就可以了,演示帐号是 **ken** 用户 6. 对于早就下载了的小伙伴,升级的方式就是执行db文件夹下对应数据库的upgrade升级sql语句和act的初始化sql语句,再启动项目就可以了,演示帐号是 **ken** 用户 ### 重要说明 2017‎年‎06‎月‎01日 ‏11:50:24 星期四 1. 开发框架是我一个人利用业余时间做的,也是我一个人在维护,时间有限更新会慢一点,不过我会坚持做下去,把我的想法都实现出来,也针对QQ群里大家反馈的修改意见进行更新,如果你有好的意见或建议,请联系我,QQ、邮件都可以 2. 最近忙于换工作,买房子办手续,断更一段时间,**是断更而不是停更**,忙过这段时间会恢复更新的,请大家持续关注 3. 简单说一下接下来的打算,开发框架将增加视图建模(可视化配置list界面)、表单建模(可视化配置form界面)、流程建模(基于activiti并与前两个结合可视化搭建流程)三大核心模块,统一增删改查等操作方法,实现纯配置开发 ### V2.5.1 2017‎年‎06‎月‎01日 ‏11:50:24 星期四 1. 已经过去两个月了,开发平台没有大的更新,都是修改QQ群里大家反馈的bug(都是mysql版本的,之前公司用的都是oracle的,oracle是稳定的没问题的,当然现在mysql也没什么问题了) 2. V2.5.1解决mysql关键字导致的bug 3. 开发框架说明增加更新记录(也就是现在看的这个啦~) 4. 开发框架增加SQL升级脚本,老用户可以执行升级SQL对数据库升级,而对现有数据不产生任何影响,文件在\resources\db\upgrade\版本号\对应数据库sql文件 ### V2.5.0 2017‎年‎03‎月‎24‎日 ‏13:28:24 星期五 1. 开发平台在开源中国码云托管(之前都是放在github上的),并在当天通过了码云的自荐,连续多天今日热门排名第一和第二 ## 如何交流、反馈? * QQ: 2624030701 * QQ群:[102066064](https://jq.qq.com/?_wv=1027&k=475MoAa) (期待你的加入...) * E-mail:seeyouiken@163.com * GitHub: * 开源中国: ![输入图片说明](https://github.com/seeyoui/kensite_cms/raw/master/picture/qq.jpg) ## 版权声明 本软件使用 [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0) 协议,请严格遵照协议内容: 1. 需要给代码的用户一份Apache Licence。 2. 如果你修改了代码,需要在被修改的文件中说明。 3. **在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。** 4. 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。 3. Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售 # 系统美图 ![输入图片说明](https://github.com/seeyoui/kensite_cms/raw/master/picture/1.png) ![输入图片说明](https://github.com/seeyoui/kensite_cms/raw/master/picture/2.png) ![输入图片说明](https://github.com/seeyoui/kensite_cms/raw/master/picture/3.png) ![输入图片说明](https://github.com/seeyoui/kensite_cms/raw/master/picture/4.png) ![输入图片说明](https://github.com/seeyoui/kensite_cms/raw/master/picture/5.png) ![输入图片说明](https://github.com/seeyoui/kensite_cms/raw/master/picture/6.png) ![输入图片说明](https://github.com/seeyoui/kensite_cms/raw/master/picture/7.png) ![输入图片说明](https://github.com/seeyoui/kensite_cms/raw/master/picture/8.png) ![输入图片说明](https://github.com/seeyoui/kensite_cms/raw/master/picture/10.png) ![输入图片说明](https://github.com/seeyoui/kensite_cms/raw/master/picture/11.png) ![输入图片说明](https://github.com/seeyoui/kensite_cms/raw/master/picture/12.png) ![输入图片说明](https://github.com/seeyoui/kensite_cms/raw/master/picture/13.png) ![输入图片说明](https://github.com/seeyoui/kensite_cms/raw/master/picture/9.png)