快速二次开发企业信息管理系统基础框架搭建整合实例代码教程 |
演示网站点击查看 |
所属类别持久层框架 |
最后更新2020-03-22 12:16:23 |
品牌 | 其他 | 语言 | Java | 数据库 | Mysql | 移动端 | Wap |
---|---|---|---|---|---|---|---|
大小 | 15 MB | 规格 | 整站源码 | 授权 | 免授权 | 源文件 | 部分加密(含部分源文件) |
安装服务 | 免费安装 | 主机类型 | 独立主机(服务器、VPS、VM) |
---|---|---|---|
伪静态 | 不需要 | 操作系统 | Windows,Linux |
安装方式 | 提供管理权限,远程协助 | Web服务 | Apache |
引言
一个 Java EE 企业级快速开发平台,基于经典技术组合(Spring Boot、Spring MVC、Apache Shiro、MyBatis、Beetl、Bootstrap、AdminLTE)采用经典开发模式,让初学者能够更快的入门并投入到团队开发中去。在线代码生成功能,包括核心模块如:组织机构、角色用户、菜单及按钮授权、数据权限、系统参数、内容管理、工作流等。采用松耦合设计;界面无刷新,一键换肤;众多账号安全设置,密码策略;在线定时任务配置;支持集群,支持SAAS;支持多数据源;支持读写分离、分库分表;支持微服务。
快速开发平台的主要目的是能够让初级的研发人员快速的开发出复杂的业务功能(经典架构会的人多),让开发者注重专注业务,其余有平台来封装技术细节,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安全质量。
自 2013 年发布以来已被广大爱好者用到了企业、政府、医疗、金融、互联网等各个领域中,依架构简单精良、易于扩展、大众思维的设计模式,深入开发者的内心,并荣获开源中国《最受欢迎中国开源软件》奖杯,期间也帮助了不少刚毕业的大学生,作为入门教材,快速的去实践。
作者结合了多年总结和经验,以及各方面的应用案例,对架构完成了一次全部重构,也纳入很多新的思想。不管是从开发者模式、底层架构、逻辑处理还是到用户界面,用户交互体验上都有很大的进步,在不忘学习成本、提高开发效率的情况下,安全方面也做和很多工作,包括:身份认证、密码策略、安全审计、日志收集。
技术选型
- 主框架:Spring Boot 2.0、Spring Framework 5.0、Apache Shiro 1.4、J2Cache
- 持久层:Apache MyBatis 3.4、Hibernate Validation 6.0、Alibaba Druid 1.1
- 视图层:Spring MVC 5.0、Beetl 3.0(替换JSP)、Bootstrap 3.3、AdminLTE 2.4
- 前端组件:jQuery 1.12、jqGrid 4.7、layer 3.1、zTree 3.5、jquery-validation
- 工具组件:Apache Commons、Jackson 2.10、POI 3.16、Quartz 2.3
- 工作流引擎:Flowable 6.5、符合 BPMN 规范、在线流程设计器、中国式工作流
本地运行
- 环境准备:
JDK 1.8
、Maven 3.3
、MySQL 5.7
- 下载源码
- 打开文件:/web
/src/main/resources/config/application.yml
配置JDBC连接 - 执行脚本:/web
/bin/init-data.bat
初始化数据库 - 执行脚本:/web
/bin/run-tomcat.bat
启动服务即可 - 浏览器访问:http://127.0.0.1:8980/js/ 账号 system 密码 admin
1. 快速了解
2. 开发手册
• 持久层、@Table、@JoinTable、多数据源、Dao
• 业务层、数据权限、数据事务处理、通用基类、Service
• 前端组件、页面布局、表单组件、#form:*、Beetl
• 常用 JS 类库 API、js.*、jeesite.js、Tab 页签、弹窗
• 数据表格 DataGrid 组件、jqGrid、应用案例
• 业务流程 BPM、工作流引擎、Flowable、Activiti 新
3. 开发技巧
• 使用 JeeSite 4 过程中的 ★ 常见问题 ★ hot
4. 架构特点、为什么好、我们的优势
底层架构
- 以 Spring Boot 2 为基础,Maven 多项目依赖,模块分项目,松耦合,方便模块升级、增减模块。
- 模块化的数据库自动升级程序,当模块升级代码需要更新数据库时,自动执行对应版本 SQL 脚本。
- 权限授权模块灵活,支持 CAS 单点登录,简单 yml 配置即可,不用再写很多的 xml 配置文件。
- 支持多数据源,分布式事务,简单 yml 配置即可实现,为了安全性,不提供界面维护数据源。
- 数据表主键优化,如分类科目表,采用有意义的主键方式,让客户去自定义,减少后期运维维护成本。
- 实体 @Table 注解配置:
- 自动生成增删改 SQL,不需要在 mapper.xml 里写重复又费时的 SQL 了,减少开发和后期维护成本。
- 所有列 @Column 定义均放到类头,而不是分布到各个属性或方法上,非常好,主要是有如下原因:
- 一是,放到表头的好处是,可一览熟知该实体类对应的物理表结构是什么样,开发者思维从物理表结构到对象的映射转换,都是基于物理表结构的,@Column 指定物理字段名,而不是指定类上的属性名,也是这个原因;
- 二是,生成的 SQL 和查询条件,可定义列的排列顺序,方便核查定义,优化查询,提升性能;
- 三是,方便 @JoinTable 关联表和其它扩展信息的设置,如果分布到类的属性上就不太好管理列。
- 用户数据权限优化,不仅仅是角色,颗粒度细化到每个人员的身上,可自定义第三方数据权限,不仅仅是部门和公司,你可以扩展,如:地区,栏目分类,商品分类。
- 缓存监控,J2Cache 二级缓存,支持快速切换为 Redis 缓存,集群 Session 缓存共享。
- 服务器监控,查看 CPU,内存,JVM,磁盘信息等。方便运维人员分析系统负载情况。
- 支持 SAAS 多租户模式,每个租户数据通过 corp_code 字段进行分离,数据互不干扰。
- 支持 Spring Cloud 架构,分布式,微服务,最小化内核,统一配置中心,统一授权认证中心。
- 树结构的图特设计:提高运维、数据分析、优化查询。
- 多用户类型支持:员工、会员、往来的单位等。
- 丰富的内置功能:用户权限、数据权限、系统管理
安全方面
- 系统采用Java 语言开发,具有卓越的通用性、高效性、平台移植性和安全性。
- 分层设计层次清楚,低耦合,各层必须通过接口才能接入并进行参数校验,保证数据操作的安全。
- 双重验证,用户表单提交双验证:包括服务器端验证及客户端验证,防止用户通过浏览器恶意修改(如不可写文本域、隐藏变量篡改、上传非法文件等)避免客户端跳过验证直接操作数据库。
- 安全编码,用户表单提交所有数据,在服务器端都进行安全编码,防止用户提交非法脚本及SQL注入获取敏感数据等,确保数据安全。
- 密码加密,登录用户密码进行SHA1散列加密,此加密方法是不可逆的。保证密文泄露后的安全问题。
- 强制访问,系统对管理端链接都进行用户身份权限验证及权限,防止用户直接获取资源。
- 支持数据库密码及其它安全密钥自动加密配置(只需配置参数即可实现)。
- MyBatis 参数安全接受,特殊操作都必须经过 SQL 安全过滤。
- 所有请求参数获取,均通过 XSS 跨站脚本过滤方法。
- 乐观锁简单实现,必要情况下使用,提高数据安全性。
- 通过 yml 简单配置,轻松解决 JS 是否允许跨域操作。
- 身份认证:
- 登录失败多少次后显示验证码。
- 登录失败多少次后锁定账号及锁定账号时间。
- 登录账号密码可加密后再提交后台。
- 同设备是否允许账号多地登录。
13. 密码策略
- 初始密码修改策略,提醒或强制用户修改初始密码。
- 账号密码修改策略,多长时间内未修改,则提醒或强制修改密码。
- 账号密码安全等级限制策略,很弱密码,弱密码,安全密码,很安全密码。
14. 权限审计:
- 菜单权限都有哪些用户拥有查询。
- 哪些用户拥有哪些菜单查询
用户界面
- 基于 Bootstrap 3 平面化界面设计,精细,更加美观、高端、大气、上档次。
- 支持手机或平板访问,响应式样式、响应式布局,根据屏幕分辨率自适应控件布局。
- 无刷新设计,除了进入功能页面和新页面,其它情况下全部采用 Ajax 交互,优化体验和性能。
- 支持一键换肤,只需在 yml 里修改下主题名称即可快速切换整个UI的风格,不仅仅是色调和样式,布局也可改变。支持自定义扩展项目独有的主题样式风格。
- 优化用户功能操作,大众思维模式,功能清晰,更加贴切和友好。
- 国际化的支持,页面标签国际化,字典菜单国际化,数据国际化。
前端开发
- 采用当前比较流行的 Beetl 模板引擎,它的优点很多,大家可自行查阅看看,这里不多说了。
- 封装 Beetl UI 通用组件,简单实现基本表单控件、树选择,列表选择,文件上传,等等,总之是简化开发。
- 数据表格 jqGrid 组件封装,自动完成分页、排序、列宽、多表头、子表、编辑表、等。
- 支持前后分离应用,方便与手机 API 接口对接,Token 方式授权。
功能及组件
- 工具类 Utils 封装优化,应有尽有,包分类层次分明,独立工具类项目。
- 强大的 Excel 导出导入工具封装,支持大数据量,注解定义,简单配置即可实现。
- 在线任务调度,界面化管理,可新增,编辑、删除、暂停、恢复、运行一次等操作,支持独立数据源,分布式作业调度,调度日志监控分析查询。
- 代码生成工具操作简化及优化,支持多数据源。
- 在线查询在线人员,强踢在线账号。
我们的优势
整体架构清晰、稳定技术先进、源代码书写规范、经典技术会的人多、易于维护、易于扩展、安全稳定。
前端组件资源
- 后台管理模板:AdminLTE 2.4
- Web前端框架:Bootstrap 3.3
- 日期控件:My97DatePicker 4.8
- 下拉框:jQurey Select2 4.0
- 单选框、复选框:iCheck 1.0
- 表单验证:jQurey Validation 1.16
- Web弹窗/层:Layer 3.0
- JavaScript模板:Laytpl 1.2
- 树插件API:jQurey zTree API 3.5
- 树插件Demo:jQurey zTree Demo 3.5
- 数据表格插件:
其它资源
- 业务流程:Flowable BPMN 6.5.0