后台管理系统(springboot+vue3+mysql)

news2025/1/12 7:55:46

系列文章目录

1.SpringBoot整合RabbitMQ并实现消息发送与接收
2. 解析JSON格式参数 & 修改对象的key
3. VUE整合Echarts实现简单的数据可视化
4. List<HashMap<String,String>>实现自定义字符串排序(key排序、Value排序)
5. 使用JAVA代码实现生成二维码

更多文章可看我主页哦~


文章目录

  • 系列文章目录
  • 前言
  • 一、项目介绍
  • 二、低代码配置
    • 2.1 部分代码展示
      • 2.1.1后端代码生成接口主要内容代码
    • 2.2 效果图
      • 2.2.1 后端代码生成
      • 2.2.2 前端代码生成
  • 三、页面效果图展示
    • 3.1 管理端效果图
      • 3.1.1 登录页
      • 3.1.2 首页
      • 3.1.3 用户管理
      • 3.1.4 公告管理
    • 3.2 代码下载
    • 3.3 联系我
  • 总结


前言

    在我们做项目时,都会用到后台管理系统。使得管理员可以通过该平台来维护前台的数据,查看一些数据的趋势等。所以开发后台管理系统基本是每个项目必备的一环,但大多数都是重复的增删改查操作。而且模版都长得差不多,怎么可以快速开发一个后台管理系统呢?这里我推荐大家使用开源的项目vue-element-admin在这个基础上去开发特定需求的效果。这样可以节省大量不必要的时间。
    但因为这个框架是企业级的开源框架【vue3+ts+element-plus】,对于一些正在学习的同学来说理解起来可能会很难理解。涉及到了很多的封装,导致目录结构看起来比较复杂。这里我将该框架简单的进行了调整,设计了一套专门为这个目录结构生成的实体类的增删改查以及前端的代码自动生成功能只需要在低代码平台上输入实体类以及对应字段的信息,就可以生成对应目录下的代码文件,只需用户将前后端代码导入到项目中,重启项目即可实现。
     如果大家想挑战一下自己,推荐大家点击Gitee链接下载源码进行开发哦…


一、项目介绍

     还是使用的springboot+vue3+ts+mysql的框架结构(可使用element组件),后端java代码我看vue-element-admin的太过于专业。所以我这里自己写了一套后端java模版代码。完成了对于验证码的获取、用户登录、用户、公告管理以及前后端代码自动生成的接口。

二、低代码配置

用户通过平台配置实体类、表字段名称、类型信息,即可生成对应代码。

2.1 部分代码展示

2.1.1后端代码生成接口主要内容代码

生成后端文件的主要内容的代码展示:

 @Value("${backend.Path}")
    private String basePath;

    /**
     * 自动生成后端代码
     * 1. 创建com.xintai.study包名
     * 2. 创建各个包下文件以及包,包括(controller、service、impl、mapper、entity等...)
     * @param jsonObject
     */
    @Override
    public void automaticBackendCode(JSONObject jsonObject) {

        String PACKAGE_NAME = jsonObject.getString("packageName");
        //1.创建包名:从com层到service里的impl
        createFolderStructure(PACKAGE_NAME,basePath);
        String newPath = PACKAGE_NAME.replace(".", "/");
        String suffixType = ".java";//生成文件的类型

        JSONArray DATAS = jsonObject.getJSONArray("datas");
        for (int i = 0; i < DATAS.size(); i++) {
            JSONObject data = DATAS.getJSONObject(i);
            //类名
            String ENTITY_NAME = data.getString("entityName");
            //实体类备注(中文)
            String ENTITYNAME_CN= data.getString("entityName_cn");
            //实体类的字段
            JSONArray ENTITY_FIELDS = data.getJSONArray("entity");
//        log.error(ENTITY_FIELDS.get(0).toString());

            //2.创建各个文件
            // 2.1 创建entity下的实体类
            String e_str = entityStrFun(PACKAGE_NAME,ENTITY_NAME,ENTITY_FIELDS,ENTITYNAME_CN);
            createFileAndWriteStr(basePath+"/"+newPath+"/entity/",ENTITY_NAME,e_str,suffixType);

            // 2.2 创建XXXMapper文件
            String m_str = mapperStrFun(PACKAGE_NAME,ENTITY_NAME);
            createFileAndWriteStr(basePath+"/"+newPath+"/mapper/",ENTITY_NAME+"Mapper",m_str,suffixType);

            // 2.3 创建IXXXXService接口
            String s_str = IServiceStrFun(PACKAGE_NAME,ENTITY_NAME);
            createFileAndWriteStr(basePath+"/"+newPath+"/service/","I"+ENTITY_NAME+"Service",s_str,suffixType);

            // 2.4 创建XXXServiceImpl文件
            String sImpl_str = serviceImplStrFun(PACKAGE_NAME,ENTITY_NAME,ENTITY_FIELDS);
            createFileAndWriteStr(basePath+"/"+newPath+"/service/impl/",ENTITY_NAME+"ServiceImpl",sImpl_str,suffixType);

            // 2.5 创建controller文件
            String c_str = controllerStrFun(PACKAGE_NAME, ENTITY_NAME, ENTITYNAME_CN);
            createFileAndWriteStr(basePath+"/"+newPath+"/controller/",ENTITY_NAME+"Controller",c_str,suffixType);

        }
    }

生成前端的代码主要内容展示:

@Override
    public void automaticFrontendCode(JSONObject jsonObject) {
//        System.out.println("生成前端代码...");
        //这三个文件夹下创建文件
        String PACKAGE_EXTERNAL_PATH = "vue3-element-admin-master/src/api/external/";
        String PACKAGE_ROUTER_PATH = "vue3-element-admin-master/mock/";
        String PACKAGE_ADMIN_PATH = "vue3-element-admin-master/src/views/admin/";
        // 1.创建包
        // 1.1 存放接口的包
        String PACKAGE_EXTERNAL = "vue3-element-admin-master/src/api/external".replace('/','.');
        createFrontFolderStructure(PACKAGE_EXTERNAL);

        // 1.2 存放路由的包
        String PACKAGE_ROUTER = "vue3-element-admin-master/mock".replace('/','.');
        createFrontFolderStructure(PACKAGE_ROUTER);

        // 1.3 存放页面代码的包
        String PACKAGE_ADMIN = "vue3-element-admin-master/src/views/admin".replace('/','.');
        createFrontFolderStructure(PACKAGE_ADMIN);
        String routerMontageStr="";
        //2. 创建文件
        JSONArray DATAS = jsonObject.getJSONArray("datas");
        for (int i = 0; i < DATAS.size(); i++) {
            JSONObject data = DATAS.getJSONObject(i);
            //类名
            String ENTITY_NAME = data.getString("entityName");
            //实体类备注(中文)
            String ENTITYNAME_CN= data.getString("entityName_cn");
            //实体类的字段
            JSONArray ENTITY_FIELDS = data.getJSONArray("entity");

            // 2.1 创建接口的文件
            String api_str = apiTsFun(ENTITY_NAME,ENTITYNAME_CN,ENTITY_FIELDS);
            createFileAndWriteStr(basePath+"/"+PACKAGE_EXTERNAL_PATH,ENTITY_NAME.toLowerCase(),api_str,".ts");

            // 2.2 创建路由文件
            // 2.2.1 拼接要插入的router字符
            String router_str = routerTsFun(ENTITY_NAME,ENTITYNAME_CN);
            routerMontageStr+=router_str;

            // 2.3 创建页面文件XXXManage.vue
            String view_str = viewFun(ENTITY_NAME,ENTITYNAME_CN,ENTITY_FIELDS);
            createFileAndWriteStr(basePath+"/"+PACKAGE_ADMIN_PATH,ENTITY_NAME+"Manage",view_str,".vue");

        }
        // 2.4 获取router.ts文件内容,将2.2.1的内容插入到指定位置 得到新的ts代码.
        String filePath="F:/vue3v1/vue3-element-admin-master/mock/router.ts";
        String searchString = "// 这里编写";
        String newRouterTs = retrieveFileContentAndInsert(filePath,searchString,routerMontageStr);
        // 2.4.1 修改复制后文件的 内容
        createFileAndWriteStr(basePath+"/"+PACKAGE_ROUTER_PATH,"router",newRouterTs,".ts");

    }

2.2 效果图

2.2.1 后端代码生成

自动生成com.xintai.study下的所有包,在该包下生成对应实体类的文件以及代码。如下图所示:
在这里插入图片描述
点击每个文件夹下都会有对应的代码文件以及文件代码,所有的MVC三层架构中的文件夹下都会生成对应的代码文件,这里以service层代码文件生成效果作为展示:
在这里插入图片描述

2.2.2 前端代码生成

在项目文件下生成对应的文件夹,在这些文件夹下生成对应的代码。如下图所示:
在这里插入图片描述
在对应的文件夹下生成对应的XX管理.vue文件内容,包括增删改查,分页,导出数据功能。如下图所示:
在这里插入图片描述

三、页面效果图展示

3.1 管理端效果图

3.1.1 登录页

在这里插入图片描述

3.1.2 首页

在这里插入图片描述

3.1.3 用户管理

在这里插入图片描述

3.1.4 公告管理

在这里插入图片描述

3.2 代码下载

上述3.1管理端效果图中的所有按钮功能代码均已实现,代码下载地址:
后台管理系统(前端源码+后端源码+数据库文件全套)

下载文件内容文件如下图所示:
在这里插入图片描述
注:这里的代码地址是不包含低代码配置的,但所有的上述功能均已实现(验证码、用户登录、退出、增删改查、导出等),可作为大家的系统模版去在这个技术上编写需求。

3.3 联系我

大家也看到了,这里实现了低代码配置管理端功能,如有想实现管理端系统需求的小伙伴可以加我联系方式哦(下方有企鹅号)~如果只是想使用我的模版基础上自己去开发,可以点击3.2的代码下载链接去下载哦

总结

想实现好看的后台管理端系统:

  1. 可以去开源的vue-element-admin官网下载源码编辑。
  2. 可以下载我的资源,比较简单,易于上手开发。尤其是对于学习中的同学,有问题也可以私信我~我们一起学习帮助你完成系统的开发
  3. 联系我,使用低代码块配置帮助大家快速生成对应需求的后台管理端系统~效率高哦
  4. 网上也有很多不错的资源,也希望大家能够挖掘出更好的管理端系统分享哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1959571.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

规划决策算法(四)---Frenet坐标系

知乎&#xff1a;坐标系转换 1.Frenet 坐标系 什么是 Frenet 坐标系&#xff1a; 为什么使用 Frenet 坐标系&#xff1a; 通常情况&#xff0c;我们只会关注车辆当前距离左右车道线的距离&#xff0c;来判断是否偏离车道&#xff0c;是否需要打方向盘进行方向微调。而不是基于…

学习测试15-实战6-根据说明书建工程

CAN协议说明书&#xff1a;含义 一&#xff0c;得到表 1&#xff0c;先建信号 2&#xff0c;建报文&#xff0c;将对应信号拖入其中 3&#xff0c;建节点&#xff0c;将报文添加进TX msg里 调整起始位 数据库建立完成 二&#xff0c;不需要面板&#xff0c;直接导入数据库&…

OpenCV图像滤波(4)构建图像金字塔函数buildPyramid()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在计算机视觉和图像处理中&#xff0c;构建图像金字塔&#xff08;Image Pyramid&#xff09;是一种常用的技术&#xff0c;它生成一系列分辨率逐…

怎么保护电脑文件夹?文件夹保护方法大盘点

文件夹是管理电脑数据的重要工具&#xff0c;可以有效避免数据混乱。而为了避免文件夹数据泄露&#xff0c;我们需要严格保护文件夹。下面我们就来盘点一下文件夹的保护方法。 文件夹隐藏 隐藏文件夹是一种简单有效的保护方式&#xff0c;通过隐藏文件夹来避免其他人发现&…

【算法】道格拉斯

一、引言 道格拉斯算法是一种用于曲线拟合的数学方法&#xff0c;特别是在处理曲线插值问题时非常有用。道格拉斯-普克算法&#xff08;Douglas-Peucker Algorithm&#xff09;&#xff0c;简称D-P算法&#xff0c;是一种用于简化多边形或折线的高效算法&#xff0c;由David Do…

如何优化PyTorch以加快模型训练速度?

PyTorch是当今生产环境中最流行的深度学习框架之一。随着模型变得日益复杂、数据集日益庞大&#xff0c;优化模型训练性能对于缩短训练时间和提高生产力变得至关重要。 本文将分享几个最新的性能调优技巧&#xff0c;以加速跨领域的机器学习模型的训练。这些技巧对任何想要使用…

【ROS 最简单教程 002/300】ROS 集成开发环境安装 (虚拟机版): Noetic

&#x1f497; 有遇到安装问题可以留言呀 ~ 当时踩了挺多坑&#xff0c;能帮忙解决的我会尽力 &#xff01; 1. 安装操作系统环境 Linux ❄️ VM / VirtualBox Ubuntu20.04 &#x1f449; 保姆级图文安装教程指路&#xff0c;有经验的话 可以用如下资源自行安装 ITEMREFERENCE…

遥感领域新方向!Mamba+RS论文汇总!

本文总结了将Mamba应用至遥感领域的相关论文&#xff08;14篇&#xff09;&#xff0c;涉及到的论文见文末链接&#xff0c;具体如下&#xff1a; 文章目录 1. 遥感图像处理2. 多/高光谱图像分类3. 变化检测/语义分割4. 遥感图像融合/超分辨率 1. 遥感图像处理 论文题目&#…

AWD神器—watchbird后台rce挖掘

简介 在传统的AWD攻防中&#xff0c;Waf扮演着重要的角色&#xff0c;Watchbird作为一款专门为AWD而生的PHP防火墙&#xff0c;具有部署简单&#xff0c;功能强大等特点&#xff0c;一出世便受到了广大CTFer的喜爱&#xff0c;目前在GitHub上已有600多star。本篇则详细介绍如果…

传输层UDP协议

传输层UDP协议 1. 再谈端口号2. UDP协议1.1 UDP协议字段1.2 将报头和数据进行分离 3. UDP的特点 1. 再谈端口号 端口号(Port)标识了一个主机上进行通信的不同的应用程序; 在 TCP/IP 协议中, 用 “源 IP”, “源端口号”, “目的 IP”, “目的端口号”, “协议号” 这样一个五元…

AI大模型评测方法总结!

大语言模型评测对应用和后续发展至关重要&#xff0c;其评测范式包括经典和新型两种。经典评测范式涵盖自然语言理解和生成任务&#xff0c;本文介绍了流行的经典评测基准及新型评测范式下的代表性基准和实例&#xff0c;并总结了现有评测的不足。随后&#xff0c;文章提出了全…

不入耳耳机和入耳耳机哪个好?四款不入耳蓝牙耳机推荐指南

那当然是不入耳耳机好啦&#xff0c;那先讲讲入耳和不入耳的区别&#xff1a; 佩戴舒适度&#xff1a; 入耳蓝牙耳机是直接插入耳道&#xff0c;所以同时也会堵塞耳道长期积攒耳垢、造成耳道不适。 不入耳蓝牙耳机则通常设计为耳挂式或耳廓式&#xff0c;挂在耳朵外部能保持…

antd pro实现后台管理系统的建立(一)

一、初始化项目 1、全局安装pro-cli初始化脚手架 # 使用 npm或者cnpm或tyarn npm i ant-design/pro-cli -g这里建议使用npm或者tyarn&#xff0c;cnpm和npm部分不兼容&#xff0c;创建项目时会报部分依赖缺失的问题 2、创建项目pro create myapp pro create myappsimple 是基…

本地部署 Llama 3.1:Ollama、OpenWeb UI 和 Spring AI 的综合指南

、 本文介绍如何使用 Ollama 在本地部署 Llama 3.1:8B 模型&#xff0c;并通过 OpenWeb UI 和 Spring AI 来增强模型交互体验和简化 API 的调用过程。 Ollama Ollama 是一个开源的大语言模型服务工具&#xff0c;旨在简化大模型的本地部署和运行过程。用户只需要输入一行命令&…

学习008-02-04-03 Group List View Data(组列表查看数据)

Group List View Data&#xff08;组列表查看数据&#xff09; This lesson explains how to group the Employee List View data by department and position. 本课介绍如何按部门和职位对员工列表视图数据进行分组。 Note Before you proceed, take a moment to review the …

从零开始使用YOLOv8——环境配置与极简指令(CLI)操作:1篇文章解决—直接使用:模型部署 and 自建数据集:训练微调

目录 一、Yolov8源码下载 二、虚拟环境创建与必要包的安装 1.虚拟环境 2.Pytorch安装 3.Ultralytics安装 3.环境测试 三、简单命令行指令&#xff08;CLI&#xff09;使用 1.模型配置&#xff08;关键指令&#xff09;——cfg &#xff08;1&#xff09;选择任务场景——ta…

收藏丨企业官网一般选择什么类型的SSL证书比较好?

企业官网在选择SSL证书时&#xff0c;应综合考虑网站的安全性需求、用户信任度、成本效益以及管理便捷性等因素。一般来说&#xff0c;企业官网比较适合选择以下几种类型的SSL证书&#xff1a; 1. 企业型SSL证书&#xff08;Organization Validated, OV&#xff09; 特点&…

初识MyBati s

J D B C 编 程 和 O R M 模 型 加 载 驱 动 导 入 J D B C 连 接 数 据 库 的 j a r 包 &#xff0c; 利 用 C L A S S . f o r N a m e 加 载 驱 动 &#xff1b; 获 取 连 接 利 用 D r i v e r M a n a g e r 获 取 C o n n e c t i o n &#xff0c; 然 后 创 建 S t a t e…

生成式人工智能的第一课,揭开她那神奇的面纱

一、人工智能&#xff08;Artificial Intelligence&#xff09; 从1940年代开始&#xff0c;科学家们在数学推理的基础上发明了可编程数字计算机&#xff0c;这一突破激发了他们对创建“电子大脑”的探索热情&#xff0c;为后续的人工智能发展奠定了坚实的基础。1956年&#x…

2024西安铁一中集训DAY23 ---- 模拟赛(类括号匹配dp + baka‘s trick 优化双指针 + 组合数学/高斯消元 + 图上性质题)

文章目录 前言时间安排及成绩题解A. 稻田灌溉&#xff08;类括号匹配dp&#xff09;B. 最长模区间&#xff08;bakas trick 优化双指针&#xff09;C. 三只小猪和狼&#xff08;组合数学&#xff0c;高斯消元&#xff09;D. 黑色连通块 前言 感觉是开始集训以来最难的一场了&a…