简介
ContiNew Admin(Continue New Admin)持续迭代优化的前后端分离中后台管理系统框架。开箱即用,重视每一处代码规范,重视每一种解决方案细节,持续提供舒适的前、后端开发体验。
技术栈:Spring Boot3(Java17)、Vue3 & Arco Design & TS & Vite、Sa-Token、MyBatis Plus、Redisson、JetCache、JustAuth、Crane4j、EasyExcel、Liquibase、Hutool 等。
项目地址
更多更新的内容请查看以下链接
演示环境地址:https://admin.continew.top
账号:admin
密码:admin123
后端仓库:https://github.com/Charles7c/continew-admin
前端仓库:https://github.com/Charles7c/continew-admin-ui
系统功能
- 个人中心:支持基础信息修改、密码修改、邮箱绑定、手机号绑定(并提供行为验证码、短信限流等安全处理)、第三方账号绑定/解绑、头像裁剪上传
- 消息中心:提供站内信消息统一查看、标记已读、全部已读、删除等功能 用户管理:提供用户的相关配置,新增、修改、删除、重置密码、导出
- 部门管理:可配置系统组织架构,并以树形表格展示 角色管理:对权限与菜单进行分配,可根据部门设置角色的数据权限
- 菜单管理:已实现菜单动态路由,后端可配置化,支持多级菜单
- 通知公告:提供公告的发布、查看和删除等功能。管理员可以在后台发布公告,并可以设置公告的生效时间、终止时间,以 markdown-it为内核渲染 Markdown 格式内容显示
- 字典管理:提供对系统公用数据字典的维护,例如:公告类型,支持字典标签背景色和排序等配置
- 文件管理:提供文件上传、下载、预览(目前支持图片、音视频)、重命名、切换视图(列表、网格)等功能
- 存储管理:提供文件存储库新增、编辑、删除等功能,支持本地存储、兼容 S3 协议存储
- 系统配置:提供修改系统标题、Logo、favicon等基础配置功能,以方便用户系统与其自身品牌形象保持一致,提供系统发件箱配置,也支持通过配置文件指定,提供密码策略修改,支持丰富的密码策略设定,包括但不限于密码有效期、修改密码最短时间间隔、密码错误锁定账号次数、时间等
- 代码生成:提供根据数据库表自动生成相应的前后端 CRUD 代码的功能,支持同步最新表结构及代码生成预览
- 在线用户:管理当前登录用户,可一键踢下线 日志管理:提供登录日志、操作日志管理功能,可查看指定日志的详细请求及响应信息
项目结构
后端项目按功能拆分模块,下方项目目录结构是按照模块的层次顺序进行介绍的,实际 IDE 中 continew-admin-common 模块会因为字母排序原因排在上方。
continew-admin
├─ continew-admin-webapi(API 及打包部署模块)
│ ├─ src
│ │ ├─ main
│ │ │ ├─ java/top/continew/admin
│ │ │ │ ├─ webapi
│ │ │ │ │ ├─ auth(系统认证相关 API)
│ │ │ │ │ ├─ common(通用相关 API)
│ │ │ │ │ ├─ monitor(系统监控相关 API)
│ │ │ │ │ ├─ system(系统管理相关 API)
│ │ │ │ │ └─ tool(系统工具相关 API)
│ │ │ │ └─ ContiNewAdminApplication.java(Spring Boot 启动程序)
│ │ │ └─ resources
│ │ │ ├─ config(核心配置目录)
│ │ │ │ ├─ application-dev.yml(开发环境配置文件)
│ │ │ │ ├─ application-prod.yml(生产环境配置文件)
│ │ │ │ └─ application.yml(通用配置文件)
│ │ │ ├─ db/changelog(Liquibase 数据脚本配置目录)
│ │ │ │ ├─ mysql(MySQL 数据库初始 SQL 脚本目录)
│ │ │ │ ├─ postgresql(PostgreSQL 数据库初始 SQL 脚本目录)
│ │ │ │ └─ db.changelog-master.yaml(Liquibase 变更记录文件)
│ │ │ ├─ templates(模板配置目录,例如:邮件模板)
│ │ │ ├─ banner.txt(Banner 配置文件)
│ │ │ └─ logback-spring.xml(日志配置文件)
│ │ └─ test(测试相关代码目录)
│ └─ pom.xml(包含打包相关配置)
├─ continew-admin-system(系统管理模块,存放系统管理相关业务功能,例如:部门管理、角色管理、用户管理等)
│ ├─ src
│ │ ├─ main
│ │ │ ├─ java/top/continew/admin
│ │ │ │ ├─ auth(系统认证相关业务)
│ │ │ │ │ ├─ config(系统认证相关配置)
│ │ │ │ │ ├─ model(系统认证相关模型)
│ │ │ │ │ │ ├─ query(系统认证相关查询条件)
│ │ │ │ │ │ ├─ req(系统认证相关请求对象(Request))
│ │ │ │ │ │ └─ resp(系统认证相关响应对象(Response))
│ │ │ │ │ └─ service(系统认证相关业务接口及实现类)
│ │ │ │ └─ system(系统管理相关业务)
│ │ │ │ ├─ config(系统管理相关配置)
│ │ │ │ ├─ enums(系统管理相关枚举)
│ │ │ │ ├─ mapper(系统管理相关 Mapper)
│ │ │ │ ├─ model(系统管理相关模型)
│ │ │ │ │ ├─ entity(系统管理相关实体对象)
│ │ │ │ │ ├─ query(系统管理相关查询条件)
│ │ │ │ │ ├─ req(系统管理相关请求对象(Request))
│ │ │ │ │ └─ resp(系统管理相关响应对象(Response))
│ │ │ │ └─ service(系统管理相关业务接口及实现类)
│ │ │ └─ resources
│ │ │ └─ mapper(系统管理相关 Mapper XML 文件目录)
│ │ └─ test(测试相关代码目录)
│ └─ pom.xml
├─ continew-admin-generator(代码生成器插件模块,生产不需要部署此模块)
│ ├─ src
│ │ ├─ main
│ │ │ ├─ java/top/continew/admin/generator
│ │ │ │ ├─ config(代码生成器相关配置)
│ │ │ │ ├─ enums(代码生成器相关枚举)
│ │ │ │ ├─ mapper(代码生成器相关 Mapper)
│ │ │ │ ├─ model(代码生成器相关模型)
│ │ │ │ │ ├─ entity(代码生成器相关实体对象)
│ │ │ │ │ ├─ query(代码生成器相关查询条件)
│ │ │ │ │ ├─ req(代码生成器相关请求对象(Request))
│ │ │ │ │ └─ resp(代码生成器相关响应对象(Response))
│ │ │ │ └─ service(代码生成器相关业务接口及实现类)
│ │ │ └─ resources
│ │ │ ├─ templates/generator(代码生成相关模板目录)
│ │ │ ├─ application.yml(代码生成配置文件)
│ │ │ └─ generator.properties(代码生成类型映射配置文件)
│ │ └─ test(测试相关代码目录)
│ └─ pom.xml
├─ continew-admin-common(公共模块,存放公共工具类,公共配置等)
│ ├─ src
│ │ ├─ main/java/top/continew/admin/common
│ │ │ ├─ config(公共配置)
│ │ │ ├─ constant(公共常量)
│ │ │ ├─ enums(公共枚举)
│ │ │ ├─ model(公共模型)
│ │ │ │ ├─ dto(公共 DTO(Data Transfer Object))
│ │ │ │ ├─ req(公共请求对象(Request))
│ │ │ │ └─ resp(公共响应对象(Response))
│ │ │ └─ util(公共工具类)
│ │ └─ test(测试相关代码目录)
│ └─ pom.xml
├─ .github(GitHub 相关配置目录,实际开发时直接删除)
├─ .idea
│ └─ icon.png(IDEA 项目图标,实际开发时直接删除)
├─ .image(截图目录,实际开发时直接删除)
├─ .style(代码格式相关配置目录,实际开发时根据需要取舍,删除时注意删除 spotless 插件配置)
├─ .gitignore(Git 忽略文件相关配置文件)
├─ docker(项目部署相关配置目录,实际开发时可备份后直接删除)
├─ LICENSE(开源协议文件)
├─ CHANGELOG.md(更新日志文件,实际开发时直接删除)
├─ README.md(项目 README 文件,实际开发时替换为真实内容)
├─ lombok.config(Lombok 全局配置文件)
└─ pom.xml(包含版本锁定及全局插件相关配置)