# 完整开源 web 项目
| 🐉 ECJia,一款新零售的开源电商系统 | 🐉 Java 版 Spring+Uniapp 的开源商城项目 crmeb |
|---|---|
| Java 版 Spring+Uniapp 的开源商城项目 crmeb | 带工作流的 springboot 后台管理项目 |
| BootDo 是高效率,低封装,面向学习型,面向微服务的 | Java 开源企业级快速开发框架 |
# 第一个就是优秀的Jeecg-boot快速开发平台
https://github.com/zhangdaiscott/jeecg-boot
开发环境
语言:Java 8
IDE(JAVA):IDEA / Eclipse 安装 lombok 插件
IDE(前端):WebStorm 或者 IDEA
依赖管理:Maven
数据库:MySQL5.7+ & Oracle 11g & Sqlserver2017
缓存:Redis
开发环境后端
基础框架:Spring Boot 2.1.3.RELEASE
持久层框架:Mybatis-plus_3.1.2
安全框架:Apache Shiro 1.4.0,Jwt_3.7.0
数据库连接池:阿里巴巴 Druid 1.1.10
缓存框架:redis
日志打印:logback
其他:fastjson,poi,Swagger-ui,quartz, lombok(简化代码)等。
开发环境前端
Vue 2.6.10,Vuex,Vue Router Axios ant-design-vue webpack,yarn vue-cropper - 头像裁剪组件 @antv/g2 - Alipay AntV 数据可视化图表 Viser-vue - antv/g2 封装实现 eslint,@vue/cli 3.2.1 vue-print-nb - 打印
# renren-fast 是一个轻量级的 Spring Boot 快速开发平台
https://github.com/renrenio/renren-fast-vue
能快速开发项目并交付【接私活利器】 完善的 XSS 防范及脚本过滤,彻底杜绝 XSS 攻击,实现前后端分离,通过 token 进行数据交互
renren-fast-vue基于vue、element-ui构建开发,实现renren-fast后台管理前端功能,提供一套更优的前端解决方案
前后端分离,通过token进行数据交互,可独立部署
主题定制,通过scss变量统一一站式定制
动态菜单,通过菜单管理统一管理访问路由
数据切换,通过mock配置对接口数据/mock模拟数据进行切换
发布时,可动态配置CDN静态资源/切换新旧版本
演示地址:http://demo.open.renren.io/renren-fast (账号密码:admin/admin)
2
3
4
5
6
7
# 第三套系统:vue-manager-system
https://github.com/lin-xin/vue-manage-system
只包含了前端部分,不过功能都比较完善,基于 vue + element 的后台管理系统解决方案
# SpringBoot+Vue-Jeebase 是一款前后端分离的开源开发框架
# Jeebase 软件架构
- 使用 Spring Boot + MyBatis + MyBatis-Plus + Shiro + Jwt + Druid + J2Cache + Ehcache + Redis + Vue2 + ElementUI/Ant Design Pro Vue + Swagger2 等开源框架
- 文件上传使用七牛云,发送短信使用阿里云
- 权限设计使用 RBAC 模型,重写 Shiro 相关实现,结合 Jwt 实现前后端分离功能。
- 使用 J2Cache 实现二级缓存,便于小项目单机部署和大项目分布式部署之间的切换,当然主要是为了性能方面考虑。
- 使用 MyBatis-Plus 实现后台代码的生成及简化相关 sql 代码的编写。
- 前端使用开源前端框架vue-element-admin,在其基础上实现了后台配置菜单及权限。
# Jeebase 功能说明
- 前后端分离,菜单权限使用 vue-element-admin 原生方法和后台资源配置两种方案
- 支持权限控制到按钮,命名规则参考 shiro 权限标签
- 权限使用基于角色的权限控制 RBAC 模型,使用 shiro+jwt 的方案,可以控制到菜单,按钮。
- 支持数据权限控制,使用 AOP+mybatis 插件动态修改执行语句
- 定时任务考虑到分布式部署,所以使用 xxl-job
- 系统日志使用分布式实时日志分析解决方案 ELK 部署架构
# Jeebase 目录说明
- jeebase-service Java 后台服务代码
- jeebase-vue vue-element-admin 3.x 版本的后台管理前端页面代码
- jeebase-vue-v2 vue-element-admin 4.x 版本的后台管理前端页面代码
- jeebase-wechat 微信小程序及微信服务号前端页面代码
- jeebase-wechat/jeebase-vant 以有赞 vant 为前端框架的微信服务号前端页面代码
- jeebase-wechat/jeebase-color 以 color 为前端框架的微信小程序前端页面代码(因有赞 vant 的小程序前端框架侵入性太强,故选择 ColorUI 为前端框架)
# Erupt
Erupt 一个通用后台管理框架,据说有 超低代码量、 零前端代码、零 CURD 操作、无需建表,纯 Java 注解开发等特色,号称三分钟就可以搭建一个完整的后台管理系统。
# bootdo
BootDo 是高效率,低封装,面向学习型,面向微服务的开源 Java EE 开发框架。
BootDo 是在 SpringBoot 基础上搭建的一个 Java 基础开发平台,MyBatis 为数据访问层,ApacheShiro 为权限授权层,Ehcache 对常用数据进行缓存。
BootDo 主要定位于后台管理系统学习交流,已内置后台管理系统的基础功能和高效的代码生成工具,
包括:
系统权限组件、数据权限组件、数据字典组件、核心工具组件、视图操作组件、工作流组件、代码生成等。
前端界面风格采用了结构简单、性能优良、页面美观大气的 Twitter Bootstrap 页面展示框架。
采用分层设计、双重验证(客户端和服务器端验证)、提交数据安全编码、密码加密、访问验证、数据权限验证。
使用 Maven 做项目管理,提高项目的易开发性、扩展性。
BootDo 目前包括以下四大模块,系统管理(SYS)模块、 内容管理(CMS)模块、在线办公(OA)模块、代码生成(GEN)模块。
# 启动项目 bootdo
# 创建数据库 bootdo(数据库可以修改)
然后将bootdo.sql文件复制并在 mysql 中运行创建好数据表。
找到配置文件application-dev.yml,更改数据库连接和账号信息。
# 代码生成
generator.properties
# 其他说明
session 支持 ehcache 和 redis,配置文件制定 cacheType,切换缓存类型。
# 技术选型
# 1、后端
- 核心框架:Spring Boot
- 安全框架:Apache Shiro
- 模板引擎:Thymeleaf
- 持久层框架:MyBatis
- 数据库连接池:Alibaba Druid
- 缓存框架:Ehcache 、Redis
- 日志管理:SLF4J
- 工具类:Apache Commons、Jackson
# 2、前端
- JS 框架:jQuery
- 客户端验证:JQuery Validation
- 富文本在线编辑:summernote
- 数据表格:bootstrapTable
- 弹出层:layer
- 树结构控件:jsTree
# 3、平台
- 服务器中间件:SpringBoot 内置
- 数据库支持:目前仅提供 MySql 数据库的支持,但不限于数据库
- 开发环境:Java、Eclipse Java EE 、Maven 、Git
# mutzfw
Java 开源企业级快速开发框架,拥有完善的
权限控制、代码生成器、自定义表单、动态数据库、灵活的工作流、手机APP客户端、支持前后端分离开发。
# mutzfw 项目特性
- 可以动态配置数据表实现数据平台中心,
- 支持工作流少量开发快速配置 OA 系统。
- 采用 APP 壳方式实现跨平台 APP 打包,也支持前后端分离开发。
- 强大的数据表逻辑字段和依赖字段可以使用数据库函数计算,可以在不更改代码的情况下实现很多计算功能。
- 数据表数据复杂查询,可以快速进行数据统计及导出。
- 基于(Role-Based Access Control)角色权限,登录即将用户所有可以管理的人员查出进行缓存,方便在具体业务中使用。
- 工作流采用 Flowable 比 Activiti 更加强大,更加易于扩展。本项目开发业务时只需要少量代码即可完成,加速业务完成,减少工作量。
- 服务器监控,对于服务器资源监控出现异常时可以邮件通知管理员。
- 首页门户动态配置图表满足领导宏观可视化需求。
# beta 更新内容
- 1 在线表单管理---(优化安排:添加表引用字段)
- 2 数据字典管理
- 2 数据表数据复杂查询
- 3 组织架构管理---(优化安排:需要重构)
- 4 用户管理---(优化安排:需要重构)
- 5 角色权限管理、精细化人员管理范围
- 6 Nutz 国际化
- 7 邮件管理(可配置 3 个免费邮箱发送邮件)
- 8 新闻管理
- 9 首页门户配置---(优化安排:需要重构)
- 10 oshi 服务器状态监控
- 11 druid 监控
- 12 redis 集成
- 13 系统信息配置
- 14 日志记录查看
- 15 定时任务管理
- 16 移动端 APP 支持(HBuilder WEB APP 打包指向登录页面即可)
- 17 APP 扫码登录
- 18 数据库定时自动备份
- 19 采用 webscokets 推送业务消息
- 20 采用 webscokets 推送基于 shell 的实时日志监控
- 21 redis 缓存管理
- 22 附件管理
- 23 人员异动(部门岗位调整)(优化安排:流程需要使用工作流调整)
- 24 个人资料维护(优化安排:流程需要使用工作流调整)
- 25 通讯录(优化安排:需要重构)
- 25 将现有的 POI 操作工具类分离,重构出一个 POI 操作工具为独立模块(模版式导入、导出)
- 26 授权管理(license)
- 27 标准化 CAS 接入
- 28 Flowable 工作流深度定制(可以实现快速配置开发)
- 0 我的任务
- 1 发起任务
- 2 待办、待签任务
- 3 已发任务
- 4 已办任务
- 1 自定义回退、驳回
- 2 流程审核人范围控制
- 3 自由选择下一步审核人
- 4 手写签字
- 5 多实例(会签)加签
- 6 多实例(会签)减签
- 7 委托任务
- 8 转派任务
- 9 自动委托(全局自动委托)
- 10 流程催办
- 11 流程作废
- 12 流程撤回
- 13 中国式流程加签
- 14 流程任务管理员全局管理
- 1 指派给任意人员
- 13 在线表单集成工作流实现 OA
- 1 在线表单设计器
- PC 表单
- APP 表单
- 29 在线报表
- 1 SQL 模式统计报表(自定义各种图表)
- 2 基于在线表单的统计报表(自定义各种图表)
# 软件架构
# 后端技术
技术名称 Nutz Framework 容器 Nutz MVCMVC 框架 Nutz ORMORM 框架 Nutz-SqlTpLSql 模版框架 Apache Shiro 安全框架 Druid 数据库连接池 nutz-plugins-validation 校验框架 beetl 模板引擎 Redis 分布式缓存数据库 Quartz 作业调度框架 flowable 工作流引擎 Maven 项目构建管理 Webscoketweb 消息实时推送 swagger 后端 API 接口信息 logback 日志组件 POI 4.0excle,word 文档操作 j2v8 执行 JS 动态脚本(JDK1.8 后使用) NashornJs 执行 JS 动态脚本(JDK1.8 使用) oshi 服务器状态监控
# 前端技术
- 1、基于 ant-design-vue 前后端分离开发(分离版本只开发了登录与权限路由控制 )
- 2、传统开发模式
技术名称 AdminLTEUI 骨架 Jquery 函式库 vue.js 双向绑定 MVVM Bootstrap 前端 UI 组件 layui 前端 UI 组件 ztree 树组件 layui.table 表格 layer 弹窗组件 layui.date 日期插件 SMValidator 前端效验插件 echarts 前端图表 Font Awesome 前端图标 common.js 前端核心封装(弹窗树、统一文件上传、消息弹窗等) iCheck 单选框复选框美化 magic-check 单选框复选框美化 webuploader 文件上传 MUIHBuilder WEB APP 打包可以产出 IOS、android APP
# 运行环境
- JDK 8u221 +
- Maven 3.3.9 +
- Redis 3.2.100 +
- MariaDB 10.2 + or MySQL 5.7 +
- lombok 1.18.4 +
# IDEA 开发环境
- Lombok plugin 开发利器
- NutzCodeInsight Nutz 框架插件
- NutzFw Code Generat NutzFw 代码生成器插件
# 模块说明
模块描述备注
- nutzfw-commonMVC 核心
- nutzfw-license 产品授权管理非开源
- nutzfw-web-adminweb 核心包
- nutzfw-web-user-front 无需登录的用户前台包含用户采用邮箱验证码注册
- nutzfw-web-flowable 工作流深度订制 gitee & github start 100+ 再开源
- nutzfw-web-oaoa 工作流基于
- nutzfw-web-flowable 模块 test 测试包