一个界面现代美观,色彩年轻化的Vue3+SpringBoot3前后端分离中后台管理脚手架

📚 在线文档 | ✨ 提交需求 | 🚀 演示地址(账号/密码:admin/admin123)

简介

ContiNew Admin (Continue New Admin)中后台管理框架/脚手架,持续以最新流行技术栈构建,拥抱变化,迭代优化。在社区贡献者的支持和参与下,持续发展并源源不断地为企业级项目开发提供助力。当前采用的技术栈:Spring Boot3(Java17)、Vue3 & Arco Design、Sa-Token、MyBatis Plus、Redisson、Liquibase、JustAuth、Easy Excel、Hutool、TypeScript、Vite4 等。

主要特性

  • 精选技术栈:使用综合考虑成熟度、流行性、发展潜力较佳的技术栈,包括 Spring Boot、MyBatis Plus、Sa-Token、Hutool 等
  • 高效率开发:后端提供了 CRUD 组件,在 Controller 中只需添加一个注解,即可自动生成增、删、改、查、分页、列表、树列表等 API
  • 提供代码生成功能,根据用户提供的项目信息和配置,自动生成前后端项目结构、代码文件和部分逻辑代码,提高开发效率
  • 一个注解解决一个条件查询,基于注解的通用查询方式,降低拼接 MyBatis Plus QueryWrapper 的烦恼
  • 提供一套 Base 基类(BaseDO、BaseResp、BaseController、BaseService、扩展版 BaseMapper 等),方便复用和扩展
  • 编写或基于 Hutool 扩展部分工具类,提供校验工具和实践,提高开发效率(能 PR 到 Hutool 的已尽量 PR)
  • 支持 API 级别的功能权限与数据权限,可自定义操作
  • 前后端统一异常拦截处理,统一输出异常信息,避免繁琐的异常判断
  • 自动初始化数据:通过 Liquibase 管理数据库脚本版本记录,并在系统第一次启动时自动进行数据初始化,无须额外配置导入
  • 提供多项实用基础配置,例如:Jackson 针对日期、通用枚举的序列化、反序列化配置,统一线程池配置等
  • 良好的代码、配置文件结构和命名,完善的代码注释甚至包括 Git Commit 信息、接口文档参数示例,遵循阿里巴巴 《Java开发手册(黄山版)》 的代码规范,保证代码质量和可维护性
  • 更多细节及实践,敬请探索与关注

系统功能

Note
更多功能和优化正在赶来💦,最新项目计划和进展请关注 GitHub ProjectCHANGELOG.md

  • 个人中心:支持基础信息修改、安全设置(密码修改、邮箱绑定、手机号绑定、第三方账号绑定/解绑)、头像裁剪上传、个人操作日志查看
  • 用户管理:提供用户的相关配置,新增用户后,默认密码为 123456
  • 部门管理:可配置系统组织架构,树形表格展示
  • 角色管理:对权限与菜单进行分配,可根据部门设置角色的数据权限
  • 菜单管理:已实现菜单动态路由,后端可配置化,支持多级菜单
  • 公告管理:提供公告的发布、查看和删除等功能。管理员可以在后台发布公告,并可以设置公告的生效时间、终止时间,以 markdown-it 为内核渲染 Markdown 格式内容显示
  • 消息管理:提供消息查看、标记已读、全部已读、删除等功能(适配对接导航栏站内信功能)
  • 字典管理:提供对系统公用数据字典的维护,例如:公告类型,支持字典标签背景色和排序等配置
  • 系统配置:提供修改系统标题、Logo、favicon 等基础配置功能,以方便用户系统与其自身品牌形象保持一致(暂未开放高级配置)
  • 代码生成:提供根据数据库表自动生成相应的前后端 CRUD 代码的功能
  • 在线用户:管理当前登录用户,可一键踢下线
  • 日志管理:提供在线用户监控、登录日志监控、操作日志监控和系统日志监控等监控功能

核心技术栈

名称版本简介
Vue3.3.7渐进式 JavaScript 框架,易学易用,性能出色,适用场景丰富的 Web 前端框架。
Arco Design2.53.0字节跳动推出的前端 UI 框架,年轻化的色彩和组件设计。
TypeScript5.2.2TypeScript 是微软开发的一个开源的编程语言,通过在 JavaScript 的基础上添加静态类型定义构建而成。
Vite4.5.0下一代的前端工具链,为开发提供极速响应。
Spring Boot3.1.5简化 Spring 应用的初始搭建和开发过程,基于“约定优于配置”的理念,使开发人员不再需要定义样板化的配置。(Spring Boot 3.0 开始,要求 Java 17 作为最低版本)
Undertow2.3.10.Final采用 Java 开发的灵活的高性能 Web 服务器,提供包括阻塞和基于 NIO 的非堵塞机制。
Sa-Token + JWT1.37.0轻量级 Java 权限认证框架,让鉴权变得简单、优雅。
MariaDB11.1.2MySQL 的一个分支,主要由开源社区在维护,完全兼容 MySQL,包括 API 和命令行,能轻松成为 MySQL 的代替品。
MyBatis Plus3.5.4MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,简化开发、提高效率。
dynamic-datasource-spring-boot-starter4.2.0基于 Spring Boot 的快速集成多数据源的启动器。
Hikari5.0.1JDBC 连接池,号称 “史上最快连接池”,SpringBoot 在 2.0 之后,采用的默认数据库连接池就是 Hikari。
mysql-connector-j8.0.33MySQL Java 驱动。
P6Spy3.9.1SQL 性能分析组件。
Liquibase4.20.0用于管理数据库版本,跟踪、管理和应用数据库变化。
Redis7.2.3高性能的 key-value 数据库。
Redisson3.24.3不仅仅是一个 Redis Java 客户端,同其他 Redis Java 客户端有着很大的区别,相比之下其他客户端提供的功能还仅仅停留在作为数据库驱动层面上,比如仅针对 Redis 提供连接方式,发送命令和处理返回结果等。而 Redisson 充分的利用了 Redis 键值数据库提供的一系列优势,基于 Java 实用工具包中常用接口,为使用者提供了一系列具有分布式特性的常用工具类。使得原本作为协调单机多线程并发程序的工具包获得了协调分布式多机多线程并发系统的能力,大大降低了设计和研发大规模分布式系统的难度。同时结合各富特色的分布式服务,更进一步简化了分布式环境中程序相互之间的协作。
SMS4J3.0.3短信聚合框架,轻松集成多家短信服务,解决接入多个短信 SDK 的繁琐流程。
Just Auth1.16.5开箱即用的整合第三方登录的开源组件,脱离繁琐的第三方登录 SDK,让登录变得 So easy!
Easy Excel3.3.2一个基于 Java 的、快速、简洁、解决大文件内存溢出的 Excel 处理工具。
Easy Captcha1.6.2Java 图形验证码,支持 gif、中文、算术等类型,可用于 Java Web、JavaSE 等项目。
Knife4j4.3.0前身是 swagger-bootstrap-ui,集 Swagger2 和 OpenAPI3 为一体的增强解决方案。
Hutool5.8.22小而全的 Java 工具类库,通过静态方法封装,降低相关 API 的学习成本,提高工作效率,使 Java 拥有函数式语言般的优雅,让 Java 语言也可以“甜甜的”。
Lombok1.18.30在 Java 开发过程中用注解的方式,简化了 JavaBean 的编写,避免了冗余和样板式代码,让编写的类更加简洁。

项目结构

后端

采用按功能拆分模块的开发方式,项目目录结构如下:

Note
下方项目目录结构是按照模块的层次顺序进行介绍的,实际 IDE 中 continew-admin-common 模块会因为字母排序原因排在上方。

continew-admin  # 全局通用项目配置及依赖版本管理
  ├─ continew-admin-webapi   # API 模块(存放 Controller 层代码,打包部署的模块)
  │  └─ src
  │    └─ main
  │      ├─ java        # 工程源文件代码目录
  │      │  └─ top
  │      │    └─ charles7c
  │      │      └─ cnadmin
  │      │        ├─ webapi
  │      │        │  └─ controller  
  │      │        │    ├─ auth     # 认证相关 API
  │      │        │    ├─ common   # 公共相关 API(例如:验证码 API 等)
  │      │        │    ├─ monitor  # 系统监控相关 API
  │      │        │    ├─ system   # 系统管理相关 API
  │      │        │    └─ tool     # 系统工具相关 API
  │      │        └─ ContinewAdminApplication.java  # 启动入口
  │      └─ resources   # 工程配置目录
  │        ├─ db.changelog   # 数据库脚本文件
  │        │  ├─ v1.0.0        # v1.0.0 版本数据库脚本文件
  │        │  ├─ v1.1.0        # v1.1.0 版本数据库脚本文件
  │        │  ├─ v1.2.0        # v1.2.0 版本数据库脚本文件
  │        │  └─ v1.3.0        # v1.3.0 版本数据库脚本文件
  │        └─ templates      # 模板文件
  │          └─ mail           # 邮件模板
  ├─ continew-admin-monitor  # 系统监控模块(存放系统监控模块相关功能,例如:日志管理、服务监控等)
  │  └─ src
  │    └─ main
  │      ├─ java        # 工程源文件代码目录
  │      │  └─ top
  │      │    └─ charles7c
  │      │      └─ cnadmin
  │      │        └─ monitor
  │      │          ├─ annotation    # 系统监控相关注解
  │      │          ├─ config        # 系统监控相关配置
  │      │          │  └─ properties   # 系统监控相关配置属性
  │      │          ├─ enums         # 系统监控相关枚举
  │      │          ├─ filter        # 系统监控相关过滤器
  │      │          ├─ interceptor   # 系统监控相关拦截器
  │      │          ├─ mapper        # 系统监控相关 Mapper
  │      │          ├─ model         # 系统监控相关模型
  │      │          │  ├─ entity       # 系统监控相关实体对象
  │      │          │  ├─ query        # 系统监控相关查询条件
  │      │          │  └─ resp         # 系统监控相关响应对象(Response)
  │      │          └─ service       # 系统监控相关业务接口及实现类
  │      │             └─ impl         # 系统监控相关业务实现类
  │      └─ resources   # 工程配置目录
  │         └─ mapper       # MyBatis Mapper XML 文件目录
  ├─ continew-admin-system   # 系统管理模块(存放系统管理模块相关功能,例如:部门管理、角色管理、用户管理等)
  │  └─ src
  │    └─ main
  │      ├─ java        # 工程源文件代码目录
  │      │  └─ top
  │      │    └─ charles7c
  │      │      └─ cnadmin
  │      │        ├─ auth     # 系统认证相关业务及配置
  │      │        │  ├─ config    # 系统认证相关配置
  │      │        │  │  └─ satoken    # Sa-Token 配置
  │      │        │  ├─ model     # 系统认证相关模型
  │      │        │  │  ├─ query      # 系统认证相关查询条件
  │      │        │  │  ├─ req        # 系统认证相关请求对象
  │      │        │  │  └─ resp       # 系统认证相关响应对象
  │      │        │  └─ service   # 系统认证相关业务接口及实现类
  │      │        │     └─ impl       # 系统认证相关业务实现类
  │      │        └─ system   # 系统管理相关业务及配置
  │      │          ├─ enums      # 系统管理相关枚举
  │      │          ├─ mapper     # 系统管理相关 Mapper
  │      │          ├─ model      # 系统管理相关模型
  │      │          │  ├─ entity      # 系统管理相关实体对象
  │      │          │  ├─ query       # 系统管理相关查询条件
  │      │          │  ├─ req         # 系统管理相关请求对象
  │      │          │  └─ resp        # 系统管理相关响应对象
  │      │          └─ service    # 系统管理相关业务接口及实现类
  │      │             └─ impl        # 系统管理相关业务实现类
  │      └─ resources   # 工程配置目录
  │         └─ mapper        # MyBatis Mapper XML 文件目录
  ├─ continew-admin-tool  # 系统工具模块(存放系统工具模块相关功能,例如:代码生成、文件管理等)
  │  └─ src
  │    └─ main
  │      ├─ java        # 工程源文件代码目录
  │      │  └─ top
  │      │    └─ charles7c
  │      │      └─ cnadmin
  │      │        └─ tool
  │      │          ├─ config        # 系统工具相关配置
  │      │          │  └─ properties    # 系统工具相关配置属性
  │      │          ├─ enums         # 系统工具相关枚举
  │      │          ├─ mapper        # 系统工具相关 Mapper
  │      │          ├─ model         # 系统工具相关模型
  │      │          │  ├─ entity        # 系统工具相关实体对象
  │      │          │  ├─ query         # 系统工具相关查询条件
  │      │          │  ├─ req           # 系统工具相关请求对象
  │      │          │  └─ resp          # 系统工具相关响应对象
  │      │          ├─ service       # 系统工具相关业务接口及实现类
  │      │          │  └─ impl          # 系统工具相关业务实现类
  │      │          └─ util          # 系统工具相关工具类
  │      └─ resources   # 工程配置目录
  │        ├─ mapper        # MyBatis Mapper XML 文件目录
  │        └─ templates     # 模板文件
  │          └─ generator       # 代码生成器模板
  ├─ continew-admin-common   # 公共模块(存放公共工具类,公共配置等)
  │  └─ src
  │    └─ main
  │      └─ java        # 工程源文件代码目录
  │        └─ top
  │          └─ charles7c
  │            └─ cnadmin
  │              └─ common
  │                ├─ annotation    # 公共注解
  │                ├─ base          # 公共基类
  │                ├─ config        # 公共配置
  │                │  ├─ easyexcel    # Easy Excel 配置
  │                │  ├─ jackson      # Jackson 配置
  │                │  ├─ mybatis      # MyBatis Plus 配置
  │                │  ├─ threadpool   # 线程池配置
  │                │  └─ properties   # 公共配置属性
  │                ├─ constant      # 公共常量
  │                ├─ enums         # 公共枚举
  │                ├─ exception     # 公共异常
  │                ├─ handler       # 公共处理器
  │                ├─ model         # 公共模型
  │                │  ├─ dto          # 公共 DTO(Data Transfer Object)
  │                │  ├─ query        # 公共查询条件
  │                │  ├─ req          # 公共请求对象
  │                │  └─ resp         # 公共响应对象
  │                ├─ service       # 公共业务接口
  │                └─ util          # 公共工具类
  │                  ├─ helper        # 公共 Helper(助手)
  │                  ├─ holder        # 公共 Holder(持有者)
  │                  └─ validate      # 公共校验器(参数校验,业务校验)

前端

continew-admin
  └─ continew-admin-ui      # 前端项目
    ├─ config               # 全局 Vite 配置
    ├─ public               # 公共静态资源(favicon.ico、logo.svg)
    ├─ src
    │  ├─ api               # 请求接口
    │  │  ├─ demo             # 示例模块
    │  │  ├─ auth             # 认证模块
    │  │  ├─ common           # 公共模块
    │  │  ├─ monitor          # 系统监控模块
    │  │  ├─ system           # 系统管理模块
    │  │  └─ tool             # 系统工具模块
    │  ├─ assets            # 静态资源
    │  │  ├─ icons            # 图标资源
    │  │  ├─ images           # 图片资源
    │  │  └─ style            # 样式资源
    │  ├─ components        # 通用业务组件
    │  ├─ config            # 全局配置(包含 echarts 主题)
    │  │  └─ settings.json    # 配置文件
    │  ├─ directives        # 指令集(如需,可自行补充)
    │  ├─ hooks             # 全局 hooks
    │  ├─ layout            # 布局
    │  ├─ locale            # 国际化语言包
    │  ├─ mock              # 模拟数据
    │  ├─ router            # 路由配置
    │  ├─ store             # 状态管理中心
    │  ├─ types             # TypeScript 类型
    │  ├─ utils             # 工具库
    │  ├─ views             # 页面模板
    │  │  ├─ demo             # Arco Design 相关示例模块
    │  │  ├─ dashboard        # 仪表盘模块
    │  │  ├─ login            # 登录模块
    │  │  ├─ monitor          # 系统监控模块
    │  │  │  ├─ log              # 日志管理
    │  │  │  │  ├─ login            # 登录日志
    │  │  │  │  ├─ operation        # 操作日志
    │  │  │  │  └─ system           # 系统日志
    │  │  │  └─ online           # 在线用户
    │  │  └─ system           # 系统管理模块
    │  │    ├─ announcement     # 公告管理
    │  │    ├─ config           # 系统配置
    │  │    ├─ dept             # 部门管理
    │  │    ├─ dict             # 字典管理
    │  │    ├─ menu             # 菜单管理
    │  │    ├─ message          # 消息管理
    │  │    ├─ role             # 角色管理
    │  │    └─ user             # 用户模块
    │  │      └─ center           # 个人中心
    │  ├─ App.vue
    │  └─ main.ts           # 入口文件
    ├─ .env.development
    ├─ .env.production
    ├─ index.html
    ├─ package.json
    └─ tsconfig.json

License

系统截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Vue3和Spring Boot是两种不同的技术,用于前后分离项目的开发。 Vue3是一种现代化的JavaScript框架,用于构建用户界面。它提供了诸多强大的工具和功能,使开发人员能够快速构建响应式的单页面应用。Vue3具有更高的性能和更好的可维护性,同时还引入了一些新的特性,如Composition API和Teleport等,使开发更加便捷。 Spring Boot是一种用于构建Java后应用的框架。它提供了一套简化的开发流程,可以快速搭建和配置项目,并提供了丰富的功能来处理数据、安全性和其他常见的后需求。Spring Boot采用了约定优于配置的原则,使得开发人员可以专注于业务逻辑的实现。 在前后分离项目,可以通过Vue3来开发前应用,通过发送HTTP请求来与后进行通信。后使用Spring Boot来处理这些请求,处理业务逻辑,并将结果返回给前。前后的通信可以使用JSON等数据格式进行交互。 前后分离项目的优点是可以实现前后职责的解耦,提高开发效率和可维护性。前可以专注于用户界面的设计和交互逻辑,后可以专注于业务逻辑的处理和数据的存储。同时,前后可以同时进行开发,加快项目的上线速度。 总结来说,使用Vue3和Spring Boot进行前后分离项目的开发,可以使开发人员能够充分发挥各自的优势,提高开发效率和项目的可维护性。同时,前后分离项目也能够更好地适应现代化的软件开发需求,提供更好的用户体验和性能。 ### 回答2: Vue3 Spring Boot前后分离项目是将前和后的开发分为两个独立的团队,分别负责开发前和后模块,最后通过接口进行数据的交互和通信。 Vue3是一种新一代的JavaScript框架,用于构建用户界面。它建立在Vue.js的基础上,在性能和开发体验上进行了改进。Vue3使用了Composition API,提供了更灵活、可重用和可组合的代码结构,可以更好地管理组件逻辑。 Spring Boot是一个基于Java的开发框架,用于构建独立的、可扩展的和生产就绪的后应用程序。它大大简化了Java后的开发流程,提供了自动化配置和快速开发的特性。 在Vue3 Spring Boot前后分离项目,前团队使用Vue3构建用户界面,实现展示数据和交互逻辑。后团队使用Spring Boot开发RESTful接口,处理前的请求并进行数据处理和存储。前后通过接口进行通信,前发送请求给后,后返回相应的数据给前。 前后分离项目的好处是可以实现前后的解耦,各自团队可以专注于自己的领域,提高开发效率和协作效果。同时,前后分离项目也可以使得前和后可以独立部署和升级,提高了系统的可维护性和扩展性。 总之,Vue3 Spring Boot前后分离项目通过利用Vue3和Spring Boot的优势,实现前后独立开发和交互,提供了更好的开发体验和协作效果。 ### 回答3: Vue3 是一种流行的前开发框架,而Spring Boot 是一种常用的后开发框架。在前后分离的项目使用 Vue3 和 Spring Boot 可以实现前后分离的架构。 在这种架构,前和后是独立开发和部署的,彼此通过 RESTful API 进行通信。前使用 Vue3 来构建用户界面,处理用户交互,并向后发送请求。后使用 Spring Boot 来处理请求,执行业务逻辑,并返回相应的数据给前Vue3 提供了强大的数据绑定和组件化的功能,可以方便地构建用户界面,并实现丰富的用户交互。它还提供了一些有用的工具和插件,例如 Vue Router 和 Vuex,用于路由管理和状态管理。通过使用这些功能,我们可以更好地组织和管理代码。 Spring Boot 是一个快速开发和部署的框架,它提供了很多现成的功能和插件,使后开发更加高效。使用 Spring Boot,我们可以很方便地定义 RESTful API,处理请求和返回响应。它还提供了许多有用的功能,例如数据库访问、安全认证和日志记录。 在 Vue3 和 Spring Boot 的配合下,我们可以实现前后分离的开发模式,提高开发效率和代码质量。前和后开发人员可以并行工作,互不干扰。同时,前后分离的架构也能为项目带来更好的可维护性和可扩展性。因此,Vue3 和 Spring Boot 的组合是一个理想的选择,用于构建现代化的前后分离项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

查尔斯-BUG万象集

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值