人人开源搭建后台管理系统 逆向工程生成CRUD代码

news2025/1/16 7:43:31

一、什么是人人开源

        也就是说和若依类似,都是快速帮我们开发一些简单的逻辑代码的,可以帮我们自动生成代码。

二、具体操作

        我们现在就以renren-fast作为后台管理系统框架,用renren-fast-vue作为前端系统框架进行开发项目

具体操作如下所示:

 1、首先在码云上搜索人人开源:

 

 

 

2、克隆快速开发系统

 

 

补充改错: !!!!!

我们最好把前端的这个管理系统克隆到D盘当中去,因为我们默认克隆到桌面的话会给我们克隆到C盘上,C盘有可能会有中文的目录,因此后面启动vscode输入命令的时候有可能因为中文目录会报错,因此我们克隆到D盘去(非中文目录下,如果克隆到桌面上的话是非中文目录那么就不用克隆到D盘了直接克隆到桌面就行):

3、把克隆下来的快速开发后台管理系统放入到我们gulimall工程中

 

然后我们打开刚才克隆下来的后台快速开发管理系统的文件 :renren-fast

删除掉之后,我们直接把renren-fast文件放入到我们gulimall工程文件中即可:

然后我们打开renren-fast模块,会发现有一些数据库:

那么我们就需要打开可视化工具,复制上面的这些SQL语句,把renren-fast模块快速开发后台管理系统的数据库创建出来:

 

然后我们就可以打开renren-fast模块的dev配置文件进行修改一下配置了:

 然后我们就可以进行测试了:测试该快速开发后台管理系统是否搭建成功:

 启动成功的话,就说明后台快速开发管理系统搭建成功了:

 注意1:有可能会出现下面的SQL连接错误问题:

        解决思路:1、先看一下刚才在dev配置文件中配置连接的时候是否写错字母了。

                          2、如果都没错的情况下在url后面添加上&useSSL=false

注意2:

解决:导入jdk版本

4、把克隆下来的快速开发前台管理系统放入到vscode中

注意:克隆下来的这个前端的系统,也要打开先把.git文件删除掉,然后再拖入到vscode中

改正:不再是桌面上的前端管理系统,而是克隆到D盘的前端管理系统(注意把.git目录删除掉后再拉取到vscode中)

拖进来之后,我们就需要先安装前端的运行环境:node.js

4.1、安装node

高版本安装node地址:直接官方搜索node即可

低版本安装node地址:
https://nodejs.org/zh-cn/download/releases/https://nodejs.org/zh-cn/download/releases/

我们这里就以10.16.3 LTS版本演示:

node.js安装成功后,我们需要添加一些配置:

1、打开cmd命令窗口,使用 node -v 命令查看一下node.js版本

 

2、配置npm使用淘宝镜像

命令:npm config set registry http://registry.npm.taobao.org/

 环境配置好之后,我们就可以回到vscode编辑器上进行测试了:

 

下载成功后,我们就可以运行这个快速开发的前端项目了:

使用命令: npm run dev  即可运行克隆下来的快速开发前端的项目

 

三、前后端联调

运行成功后,我们前端和后端就可以联合调试了

 

 

 点击登录后,会发现确实进入到我们搭建的这个快速开发的前端界面内了

 补充:

 

四、逆向工程搭建&使用

前面的三步做完之后,包括搭建的前后台管理系统能够联调同之后,我们就可以为我们的gulimall工程下的五个微服务生成基本的增删改查方法了

 为五个微服务快速生成基本代码的步骤如下所示:

 

 

 

1、配置好之后,我们就可以运行这个renren-generator项目了,但是在运行之前我们还需要以下的配置操作:

注:这里先生成的gulimall_pms数据库对应的product项目的基本crud代码,如果连续生成五个服务的话,这个地方把数据库名依次换一下然后走一遍这个步骤克隆生成出代码即可

 

 注:如果xxxx.properties配置文件中的中文乱码的话,那么可以 settings --> File Encodings --> 把Global Encoding 选择成 UTF-8 然后把下面的 Transparent bative-to-ascii conversion 勾选上即可解决

2、上面配置好后,我们就可以启动这个renren-generator项目了:

 

补充:重点注意!! 

 

 

 

 

3、解决快速生成的项目代码爆红问题

 解决思路及处理流程:

现在有这样一个问题,就是说我们这个表现层或者数据层或者业务层中,都有可能会没有实体类的原因而爆红,或者说没有导依赖所爆红,我们总不能一个一个的打开服务进行修改配置吧,因此我们就创建一个模块用来专门做这五个微服务需要的公共实体类和依赖的问题,

比如:我们直接在这个gulimall-common模块中写入一个R实体类,那么五个微服务通过导入

gulimall-common模块的依赖后那么这五个微服务就可以都获得到R实体类了(也就是说不用我们一个一个进入微服务当中为其创建实体类或者依赖了)

创建gulimall-common模块步骤:

 

微服务中依赖完gulimall-common模块的依赖后,我们就可以在gulimall-common模块当中配置一些这五个微服务共同使用的一些实体类和pom依赖了:

1、首先先处理各微服务数据层爆红问题:

 

导入完之后,我们就会发现这五个微服务的数据层确实引入到了common模块中的mybatis-plus的依赖,不爆红了,因此各个微服务的数据层已经解决:

 

2、然后处理各微服务实体类爆红问题:

3、再处理业务层所用到的公共类

 

4、然后我们再处理表现层爆红问题

5、解决Query公共类中爆红问题

5.1、先解决 StringUtils 爆红问题

 5.2、解决 SQLFilter 爆红问题

 

 

6、各微服务表现层注解爆红问题

 

但是现在有一个问题,我们各微服务的表现层各方法中都有这个注解,难不成我们都一个一个的手动删除? 那要删除到什么时候呢,我们可以用下面的一种方式:

也就是调整一下逆向工程,让生成基本代码的时候不生成那个注解:

然后我们重启这个逆向工程,然后重新生成基本代码(又回到了上面的步骤):

 

通过上面的所有操作后,那么最终我们的product微服务模块就通过逆向工程自动生成了一些基本的crud代码了~ 

五、配置 & 测试各微服务的基本CRUD功能

        首先上面我们知道了,我们为各微服务(我们先演示了product微服务)都自动生成了基本的crud代码了(数据层、业务层、表现层等),我们可以看出各微服务生成的crud代码都是基于mybatis-plus的,因此我们需要配置mybatis-plus,让各微服务和对应的数据库连接起来。(因为现在只是把各微服务的基本crud代码生成好了,但是各微服务还没有和自己对应的数据库连接起来呢)

1、项目整合mybatis-plus

第一步:在项目中导入mybatis-plus依赖

 第二步:配置数据源

配置数据源分为以下步骤:

        1、导入mysql连接驱动(也就是导入mysql依赖)

        2、在各微服务模块的application.yml配置文件中配置数据源

       

配置完数据源之后,那么我们这几个微服务项目就成功的和自己对应的数据库建立起了联系

同理我们也是直接把配置放入到common模块当中,这样就不用手动一个一个的为这几个微服务配置了,因为这几个微服务依赖了common模块,因此也同样可以依赖到我们放入到common模块中的配置(如果没有这个公共的专门放公共配置的common模块的话,那么就手动为每个微服务:比如product服务、member服务、order服务.....添加配置即可

第三步:配置mybatis-plus

 因为我们知道我们这些微服务项目都是基于mybatis-plus的,因此我们还要为这些微服务配置一下mybatis-plus

步骤演示如下所示:

1、导入mysql连接驱动(建议用8.x版本,兼容于任何版本)

 2、在各微服务模块的application.yml配置文件中配置数据源

这里需要补充一点: 

 配置文件中的url的话,尽量按下面的形式写,写全,按下面的形式写的话可以解决存放到数据库中的数据中文乱码等一些问题:

url: jdbc:mysql://192.168.91.144:3306/gulimall_pms?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&useSSL=false

 3、配置mybatis-plus

3.1、配置MapperScan注解:

 3.2、告诉mybatis-plus,sql文件的所在位置:

2、测试各微服务crud功能

也就是说基于上面的配置之后,我们的各个微服务项目就成功的和mysql建立了联系了,并且项目中的逻辑也是基于mybatis-plus完成的,那么我们就可以测试一下各个微服务的增删改查的功能了,看看到底是不是成功的和数据库建立起了联系了(测试看看保持功能到底能不能成功的把数据放入到项目对应的数据库当中去)。

我们这里就拿gulimall-product服务项目进行测试: 

 

 

测试时有可能会遇到下面的报错问题:

 

六、逆向生成所有的微服务基本CRUD代码

        我们上面已经学会如何对一个微服务快速生成基本的crud代码了,并且也知道如何配置一个微服务项目基于mybatis-plus和mysql数据库建立联系了,并且最后也能测试成功,我们知道我们上面都是以gulimall-product微服务作为演示的,我们现在就要为我们谷粒这个整体项目的微服务都快速生成crud代码和配置连接数据库 (配置的过程和玩product服务的时候是一模一样的),

这里不再演示生成基本crud代码的过程和mysql配置连接过程,看着上面的product服务的步骤做就行(从第四标题开始往下跟着步骤搭建即可)。

注意:要保证谷粒整体中的这几个微服务的端口号不能冲突(我们可以设置为8000、9000、10000.... 加以区分)

 

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

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

相关文章

做好一个BI项目的关键是什么

做好一个BI项目的关键是什么?有人会说,那肯定是报表,报表是数据分析最直接的成果展示,好的报表能够帮助企业从各种纷杂的信息中及时地发现关键有效的信息,从而为决策提供支持。诚然,报表很重要,…

SPI通信协议

目录一、什么是SPI协议二、SPI物理层三、SPI协议层一、什么是SPI协议 SPI(Serial Peripheral Interface,串行外围设备接口)通讯协议,是 Motorola 公司提出的一种同步串行接口技术,是一种高速、全双工、同步通信总线&a…

【PTA-训练day7】L2-019 悄悄关注 + L1-027 出租

L2-019 悄悄关注 - 哈希表 PTA | 程序设计类实验辅助教学平台 1、java - 喜闻乐见超时 import java.util.*;public class Main {public static void main(String[] args){Scanner scnew Scanner(System.in);int nsc.nextInt();String[] namesc.nextLine().split(" "…

Centos7.6 源码编译部署percona mysql 5.7.39-42

Centos7.6 源码编译部署percona mysql 5.7.39-42 参考链接: mysql5.7.35源码编译安装部署CentOS7 编译安装 Percona Server 5.7percona Server for MySQL 5.7源码安装 一、部署环境准备 更换阿里云yum源 cd /etc/yum.repos.d/ mkdir bak && mv *.repo ba…

[附源码]java毕业设计江苏策腾智能科技公司人事管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

第1关:节点监听机制

ZooKeeper的监听机制 节点监听机制用以保证集群之间的一致性,以及服务器可以及时通知客户端节点状态的变化。 一个节点可以被监控,包括路径中存储的数据修改,子节点路径改变,当该节点发生修改,服务器可以通知设置监控…

AVS3帧间预测

帧间预测是去除时域冗余的重要工具,随着AVS标准发展,越来越多的帧间预测工具被加入标准,主要可以分为三类:预测编码类型、运动信息编码工具、CU级和子块级运动补偿。 预测编码类型 预测编码类型是指帧间预测的不同预测方式&#…

年产5000吨芒果醋工厂设计

摘要 - 1 - 1 绪论 - 6 - 1.1 概述 - 6 - 1.1.1 芒果醋的价值 - 6 - 1.1.2 芒果醋的市场贸易需求 - 6 - 1.1.3 国内芒果醋行业发展现状 - 7 - 1.2 本课题研究的意义 - 7 - 1.3 本课题的研究内容 - 8 - 1.4 设计原则 - 8 - 2 厂址选择 - 8 - 2.1 厂址选择 - 8 - 2.2 气温 - 9 - …

21、池化技术和线程池的使用(三大方法,7大参数,4种拒绝策略)

池化技术和线程池的使用(三大方法,7大参数,4种拒绝策略) 池化技术:事先准备好一些资源,有需要用就拿,用完再还回来线程池的好处: *降低资源的消耗:线程的不停的创建销毁…

【LeetCode 力扣】2.两数相加 Java实现 模拟 递归

题目链接:2.两数相加 1 原题描述: 2 解题思路 初看此题,其实并不难理解,我们只需要简单对加法过程进行一个模拟,即可完成。那么我们应该怎么模拟呢?首先观察题目,链表是采用的 逆序 存储&…

[旭日X3派] 初识篇 - 01

简单介绍一下 旭日X3派: 地平线旭日️ X3 派是一款面向生态开发者的嵌入式 AI 开发板,接口兼容树莓派,具有 5 TOPS 端侧推理与 4 核 ARM A53 处理能力。 可同时多路 Camera Sensor 的输入并支持 H.264/H.265 编解码。 结合地平线的高性能 A…

什么是JUC

什么是JUC JUC指的是:Java里的三个包 java.util.concurrentjava.util.concurrent.atomic:原子性java.util.concurrent.locks:lock锁回顾线程和进程 进程 程序执行的一次过程,一个进程包含一个或多个线程。进程是资源分配的单位 …

【毕业设计】深度学习行人重识别系统 - person reid

文章目录0 前言1 技术背景2 技术介绍3 重识别技术实现3.1 数据集3.2 Person REID3.2.1 算法原理3.2.2 算法流程图4 实现效果5 部分代码6 最后0 前言 🔥 Hi,大家好,这里是丹成学长的毕设系列文章! 🔥 对毕设有任何疑问…

Linux NetCore下Pdf转图片 内存溢出

Linux NetCore下Pdf转图片 内存溢出Linux PDF转图片异常查看libgdiplus版本解决方案NetCore 3.1下面调用Pdf转图片的组件,在本地windows环境下转换正常,但是到容器里面就会转换失败,查看命令行日志可以看到如下错误。 Linux PDF转图片异常 …

web期末大作业:基于html+css+js制作 学校班级网页制作----校园运动会 4页

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 校园班级网页设计 | 我的班级网页 | 我的学校 | 校园社团 | 校园运动会 | 等网站的设计与制作 | HTML期末大学生网页设计作业 HTML:结构 …

source 命令的用法(与 sh Filename、./Filename的区别)

source 命令简单来说,就是读取脚本里的语句,并在当前Shell中执行,脚本里面所有新建、改变变量的语句都会保存在当前shell里。 目录 1、source 命令的使用方法 2、source命令的妙用 3、source Filename 和 ./Filename的区别 1、source 命令…

12期数据分析-第5次数据分析作业-pandas数据清洗--第 课讲解

1.册除每列都为NAN的数据,以下操作正确的是单法题 选B: 2.?离散化就是将连续值进行分区间 选C 3.以下方法中可以修改索引名称的是多选 选ABCD。 df.index.map({0:‘A1’,1:‘B1’,2:‘C1’}) 4.?求4个人的平均分数 选BCD .…

docker安装es+mac安装Kibana工具

一、docker安装es 1、下载镜像 docker pull elasticsearch:7.9.0下载完后,查看镜像 docker images​​ 2、启动镜像 docker network create esnetdocker run -d --name es -p 9200:9200 -p 9300:9300 --network esnet -e "discovery.typesingle-node&…

2022 弱口令安全实验室招新赛-靶机挑战记录

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、ubuntu 代码执行getshell获取webshell二、server 2008r2EW 流量代理ms17010三、AD机器账号伪造漏洞域内hash传递攻击登录域控总结前言 2022 弱口令安全实验…

Chakra UI Pro (Marketing + Application UI + ECommerce)

Chakra UI Pro (Marketing Application UI ECommerce) 快速创建可访问的 React 应用 程序 Chakra UI 是一个简单、模块化且可访问的组件库,它为您提供构建 React 应用程序所需的构建块。 更少的代码。更快的速度 花更少的时间编写 UI 代码,将更多的时间…