推荐一款小清新的 SpringBoot+ Mybatis 前后端分离后台管理系统项目

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 推荐一款小清新的 SpringBoot+ Mybatis 前后端分离后台管理系统项目

项目介绍

  • 前后端分离架构,分离开发,分离部署,前后端互不影响。
  • 前端技术采用vue + antdvPro + axios。
  • 后端采用spring boot + mybatis-plus + hutool等,开源可靠。
  • 基于spring security(jwt) + 用户UUID双重认证。
  • 基于AOP实现的接口粒度的鉴权,最细粒度过滤权限资源。
  • 基于hibernate validator实现的校验框架,支持自定义校验注解。
  • 提供Request-No的响应header快速定位线上异常问题。
  • 在线用户可查,可在线踢人,同账号登录可同时在线,可单独在线(通过系统参数配置)。
  • 支持前端 + 后端在线代码生成。
  • 文件,短信,缓存,邮件等,利用接口封装,方便拓展。
  • 短信默认使用阿里云sms,缓存默认使用内存缓存。

框架亮点及优势

  1. 模块化架构设计,层次清晰,业务层推荐写到单独模块,框架升级不影响业务。
模块树
├─xiaonuo                    ->项目工程
│  ├─xiaonuo-base            ->框架基础模块
│       ├─xiaonuo-core       ->核心模块
│       ├─xiaonuo-gen        ->代码生成
│       ├─xiaonuo-system     ->基础业务
│  ├─xiaonuo-main            ->业务开始模块
│       ├─业务               ->您的业务

2、独创前端字典翻译

全部字典数据储存前端store,后端接口数据统一过滤器翻译

下拉框,多选框等取值只需1行代码:('dictData'为过滤器名称,'sex'为字典类型code)返回数组字典

this.$options.filters['dictData']('sex')
或直接给值
{{ code | dictData }}

列表数据中字典翻译:('code'为字典类型唯一code,'value'为待翻译的值)返回name

{{ code | dictType(value) }}

3、独创的数据权限范围机制

数据范围的分配也来自于给用户单独分配的数据范围,最终决定用户有几个公司的数据范围的是,用户拥有的角色的数据范围 + 用户直接分配的数据范围

若一个用户有多个角色,系统最终判定用户有哪些数据范围是以多个角色和用户数据范围的 并集 为准。

仅通过注解就可以获取当前用户的数据范围,不强制联查sql可根据业务需求极其灵活的使用

@DataScope

param类继承baseparam,使用param.getDadaScope即可获取到数据权限列表

@EqualsAndHashCode(callSuper = true)
@Data
public class SysUserParam extends BaseParam {

4、独创的文件预览系统

支持txt.doc.docx.ppt.pptx.xls.xlsx.pdf.png.jpg.jpeg.bmp.gif等

预览速度快,兼容性好,支持常见文本格式.只需在运行环境一键安装libreoffice即可,运行简单,操作方便。

#libreoffice文档在线预览配置
# CentOS 下安装 libreoffice:
# 安装:yum -y install libreoffice
# Linux 中文字体乱码解决:
# 1、上传 C:\Windows\Fonts 下的字体到 /usr/share/fonts/windows 目录
# 2、执行命令:chmod 644 /usr/share/fonts/windows/* && fc-cache -fv
jodconverter:
  local:
    #暂时关闭预览,启动时会有点慢
    enabled: false
    #设置libreoffice主目录 linux地址如:/usr/lib64/libreoffice
    office-home: C:\Program Files\LibreOffice
    #开启多个libreoffice进程,每个端口对应一个进程
    port-numbers: 8100
    #libreoffice进程重启前的最大进程数
    max-tasks-per-process: 100

5、其他优势

前后端分离架构,分离开发,分离部署,前后端互不影响。

前端技术采用vue + antdvPro + axios。

后端采用spring boot + mybatis-plus + hutool等,开源可靠。

基于spring security(jwt) + 用户UUID双重认证。

基于AOP实现的接口粒度的鉴权,最细粒度过滤权限资源。

基于hibernate validator实现的校验框架,支持自定义校验注解。

提供Request-No的响应header快速定位线上异常问题。

在线用户可查,可在线踢人,同账号登录可同时在线,可单独在线(通过系统参数配置)。

支持前端 + 后端在线代码生成。

文件,短信,缓存,邮件等,利用接口封装,方便拓展。

短信默认使用阿里云sms,缓存默认使用内存缓存。

效果图

image.png

详细功能

  • 主控面板、控制台页面,可进行工作台,分析页,统计等功能的展示。
  • 用户管理、对企业用户和系统管理员用户的维护,可绑定用户职务,机构,角色,数据权限等。
  • 应用管理、通过应用来控制不同维度的菜单展示。
  • 机构管理、公司组织架构维护,支持多层级结构的树形结构。
  • 职位管理、用户职务管理,职务可作为用户的一个标签,职务目前没有和权限等其他功能挂钩。
  • 菜单管理、菜单目录,菜单,和按钮的维护是权限控制的基本单位。
  • 角色管理、角色绑定菜单后,可限制相关角色的人员登录系统的功能范围。角色也可以绑定数据授权范围。
  • 字典管理、系统内各种枚举类型的维护。
  • 访问日志、用户的登录和退出日志的查看和管理。
  • 操作日志、用户的操作业务的日志的查看和管理。
  • 服务监控、服务器的运行状态,Java虚拟机信息,jvm等数据的查看。
  • 在线用户、当前系统在线用户的查看。
  • 数据监控、druid控制台功能,可查看sql的运行信息。
  • 公告管理、系统的公告的管理。
  • 文件管理、文件的上传下载查看等操作,文件可使用本地存储,阿里云oss,腾讯cos接入,支持拓展。
  • 定时任务、定时任务的维护,通过cron表达式控制任务的执行频率。
  • 系统配置、系统运行的参数的维护,参数的配置与系统运行机制息息相关。
  • 邮件发送、发送邮件功能。
  • 短信发送、短信发送功能,可使用阿里云sms,腾讯云sms,支持拓展。

小结

项目整体还是不错的,前后端分离,后端使用 SpringBoot + MybatisPlus,前端使用 AntDesign-Vue-Pro + Vue2.0 开发,是一款不可多得的前后端分离入门学习项目。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
1月前
|
Java 应用服务中间件
SpringBoot获取项目文件的绝对路径和相对路径
SpringBoot获取项目文件的绝对路径和相对路径
104 1
SpringBoot获取项目文件的绝对路径和相对路径
|
1月前
|
分布式计算 关系型数据库 MySQL
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
57 8
|
1月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
44 2
|
1月前
|
XML Java 数据库连接
SpringBoot集成Flowable:打造强大的工作流管理系统
在企业级应用开发中,工作流管理是一个核心组件,它能够帮助我们定义、执行和管理业务流程。Flowable是一个开源的工作流和业务流程管理(BPM)平台,它提供了强大的工作流引擎和建模工具。结合SpringBoot,我们可以快速构建一个高效、灵活的工作流管理系统。本文将探讨如何将Flowable集成到SpringBoot应用中,并展示其强大的功能。
239 1
|
1月前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
40 0
|
1月前
|
JavaScript NoSQL Java
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
48 0
|
2月前
|
Java 数据库连接 Maven
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和MyBatis Generator,使用逆向工程来自动生成Java代码,包括实体类、Mapper文件和Example文件,以提高开发效率。
148 2
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
|
2月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
79 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
2月前
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
548 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
|
2月前
|
SQL Java 数据库连接
mybatis使用二:springboot 整合 mybatis,创建开发环境
这篇文章介绍了如何在SpringBoot项目中整合Mybatis和MybatisGenerator,包括添加依赖、配置数据源、修改启动主类、编写Java代码,以及使用Postman进行接口测试。
27 0
mybatis使用二:springboot 整合 mybatis,创建开发环境