Skip to content

crowd-admin是一个基于Spring,Shiro,Redis/ehcache,Mybatis的通用后台权限管理系统,这里推荐本人另一个基于sprinboot的单点登录系统

License

Notifications You must be signed in to change notification settings

wayn111/crowd-admin

Repository files navigation

crowd-admin

分支名称 Spring Boot 版本 JDK 版本
main 2.7.16 17
spring4.0 spring4.0 1.8

Language

项目介绍

基于jdk17、springboot2.7重构而来,crowd-admin是一个后台权限管理系统脚手架,集成了rbac权限管理、消息推送、邮件发送、任务调度、代码生成、elfinder文件管理等常用功能,系统内各个业务按照模块划分,前台使用H+模板。是一个java新人易于上手,学习之后能够快速融入企业开发的指导项目

主要特性

  • 前后端支持stomp高级协议,完善的websocket配置,支持自定义用户认证、连接周期监听等
  • 支持系统参数配置,支持spring内存的@Cacheable注解
  • 项目按功能模块化拆分,自定义全局统一异常输出,代码清晰合理
  • 集成elfinder模块,包含完整的文件管理操作,包含文件上传、删除、压缩、移动、预览等诸多操作
  • 支持后台消息/邮件推送、数据字典、系统参数配置、各模块操作日记记录
  • 支持系统服务监控、在线用户监控、数据源监控等操作
  • 支持redis/ehcache切换使用
  • 支持ip2region本地化
  • 支持多数据源操作
  • 前端使用H+模板,样式美观,支持ajax下载文件,js代码简洁,清晰,避免过度封装
  • 演示地址以及账号:关注我的公众号【程序员wayn】,发送 演示账号

如果有任何使用问题,欢迎提交Issue或加关注我公众号私信我告知,方便互相交流反馈~ 💘。最后,喜欢的话麻烦给我个star

关注公众号:程序员wayn,每周更新最新技术文章。回复关键字:

  • 学习:加群交流,群内问题都会一一解答。
  • 演示账号:获得线上项目管理后台演示账号。
  • 开源项目:获取博主自己写的三个开源项目,包含PC、H5商城、后台权限管理系统等。



内置模块

  1. 系统管理
    • 用户管理:系统操作者,可绑定多角色
    • 角色管理:菜单权限携带者,可配置到按钮级权限
    • 菜单管理:配置系统目录,菜单链接,操作权限
    • 部门管理:用户所属部门
    • 日志操作:记录用户操作,包含请求参数
  2. 邮件服务
    • 邮件发送:基于activeMQ异步发送邮件
  3. 办公通知
    • 我的通知:接收当前用户得通知信息
    • 通知管理:管理员发送并管理通知消息
  4. 基础管理
    • 数据字典:对系统中经常使用的一些较为固定的数据进行维护
    • 文件管理:集成elfinder,便于对系统内文件进行查看修改
  5. 系统工具
    • 代码生成:可动态根据数据库表,生成后台java代码
    • 任务调度:根据调度策略以及执行目标配置任务调度
    • 任务日志:记录任务日志,方便排错追踪
  6. 系统监控
    • 在线用户:当前系统中活跃用户状态监控,可强制下线用户
    • 数据监控:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈
    • 系统服务:监视当前系统CPU、内存、磁盘、堆栈等相关信息

技术选型

  1. 后端
    • 核心框架:Spring
    • 控制层框架:SpringMVC
    • 权限控制:Shiro
    • 消息中间件:activeMQ
    • 消息推送:Websocket
    • 邮件发送:javax.mail
    • 任务调度:Quartz
    • 持久层框架:Mybatis-Plus
    • 日志管理:SLF4J > logback
    • 缓存控制:Ehcache/Redis可切换
    • 环境控制:使用spring profile可根据-Dspring.profiles.active=dev参数灵活切换配置文件
  2. 前端
    • 模板选型:thymeleaf
    • 管理模板:H+
    • JS框架:jQuery
    • 数据表格:bootstrapTable
    • 文件管理:elfinder
    • 弹出层:layer
    • 通知消息:Toastr
    • 消息推送/轮询:sockJs、stomp
    • 树结构控件:jsTree
    • checkbox选择控件:bootstrapSwitch
  3. 开发平台
    • JDK版本:17+
    • Maven:3.5+
    • 数据库:mysql8+(设置表名称大小写忽略)
    • 缓存:ehcache/redis
    • ide:Eclipse/Idea

本地开发

# 1. 克隆项目
git clone git@github.com:wayn111/crowd-amin.git

# 2. 导入项目依赖
将crowd-admin目录用idea打开,导入maven依赖

# 3. 安装Mysql8.0+、Redis3.0+、Jdk17+、Maven3.5+

# 4. 导入sql文件
在项目根目录下crowd-web文件夹下,找到`crowd-admin.sql`文件,新建mysql数据库crowd-admin,导入其中

# 5. 修改Mysql、Redis连接配置
修改`application-dev.yml`文件中数据连接配置相关信息

# 6. 启动项目
进入crowd-web木块,找到CrowdApplication文件,在idea中右键run application运行

# 7. 访问
打开浏览器输入:http://localhost:8080/crowd/

远程部署

推荐使用 Dockerfile 方式进行远程部署,这里介绍 CentOS 系统下部署方式(默认大家已安装 docker 环境)

# 1. 修改 application-dev.yml 文件数据库、Redis 连接

# 2. 服务器上新建 /opt/wayn/crowd 目录
mkdir -p /opt/wayn/crowd/crowd-web/target
mkdir -p /opt/wayn/crowd/logs

# 3. 在项目根目录执行如下 mvn 命令对 crowd-web 模块进行打包操作
mvn clean package -DskipTests -pl crowd-web -am
打包完成后在 crowd-web/target 目录下会生成 crowd.jar 文件

# 4. 上传 crowd.jar 文件至目录服务器 /opt/wayn/crowd/crowd-web/target 目录下

# 6. 上传项目根目录下 ip2region.xdb 文件至服务器 /opt/wayn/crowd 目录下 

# 7. 上传项目根目录下 Dockerfile 文件至服务器 /opt/wayn/crowd 目录下

# 8. 构建 docker 镜像,启动容器
cd /opt/wayn/crowd
docker build -t crowd .
docker run -p 8080:8080 -v /opt/wayn/crowd:/opt/wayn/crowd --name crowd-web crowd 

# 9. 在服务器终端输入 curl -L http://localhost:8080/crowd,有网页内容返回则代表部署成功

参考资料

获取源码


实例截图

系统登陆 输入图片说明 首页 输入图片说明 输入图片说明 用户管理 输入图片说明 菜单管理 输入图片说明 通知管理 输入图片说明 查看通知 输入图片说明 文件管理 输入图片说明 系统服务 输入图片说明


特别赞助