电商项目——快速开发人人开源搭建后台管理系统&代码生成器逆向工程搭建——第六章——上篇

    科技2022-07-13  146

    电商项目——初识电商——第一章——上篇 电商项目——分布式基础概念和电商项目微服务架构图,划分图的详解——第二章——上篇 电商项目——电商项目的虚拟机环境搭建_VirtualBox,Vagrant——第三章——上篇 电商项目——Linux虚拟机中安装docker,mysql,redis_VirtualBox——第四章——上篇 电商项目——电商项目的环境搭建_开发工具&环境搭建——第五章——上篇 电商项目——快速开发人人开源搭建后台管理系统&代码生成器逆向工程搭建——第六章——上篇 电商项目——分布式组件(SpringCloud Alibaba,SpringCloud)——第七章——上篇 电商项目——前端基础——第八章——上篇 电商项目——商品服务-API-三级分类——第九章——上篇 电商项目——商品服务-API-品牌管理——第十章——上篇 电商项目——商品服务-API-属性分组——第十一章——上篇 电商项目——商品服务-API-品牌管理——第十二章——上篇 电商项目——商品服务-API-平台属性——第十三章——上篇 电商项目——商品服务-API-新增商品——第十四章——上篇 电商项目——商品服务-API-商品管理——第十五章——上篇 电商项目——商品服务-API-仓库管理——第十六章——上篇

    文章目录

    1:人人开源搭建后台管理系统1.1第一步:我们把对应项目全部下载下来,复制到自己的zlj-mall电商项目中(renren-fast-vue在前端项目中打开)1.2 第二步:在renren-fast项目中点击db,选择mysql.sql,为后台管理系统创建对应的数据库mall1.3 第三步:在renren-fast中的application-dev.yml文件配置数据库的相关信息1.4 第四步:运行renren-fast,测试1.5 第五步:引入renren-fast-vue项目1.6 第六步:同时运行renren-fast,renren-fast-vue进行前后端联调,登录 2:逆向工程搭建2.1 第一步:复制码云的renren-generator到自己的zlj-mall项目中,并且在聚合服务中增加它的模块2.2 第二步:配置好相关的信息,修改三处信息。2.3 第三步:把各个微服务都在代码生成器中逆向生成,一个完整的配置如下2.4 第四步:启动代码生成器的项目,访问端口,把所有表勾选,点击生成代码到自己指定的位置2.5 第五步:在mall-coupon中进行代码替换,如下(我们用mall-coupon进行演示)2.6 第六步:解决默认生成的代码的报错问题——创建一个mall-common2.6.1第一步: 使用maven创建一个mall-common(在zlj-mall项目里,右击,点击Module)2.6.2 第二步:让每一个微服务都引入mall-common依赖2.6.3 第三步:给mall-common里面加上每一个微服务都需要的依赖,bean,工具类 3:配置&测试微服务基本CRUD功能3.1 第一步:整合mybatisplus(我们使用mybatisplus来操作数据库)3.1.1 在mall-common中的pom.xml导入公共的mybatis依赖3.1.2 配置数据源和导入数据库驱动(在application.yml文件中配置数据源相关信息和数据库驱动)3.1.3 配置mybatis-plus 3.2 进行单元测试 4:为所有的微服务项目生成增删改查代码,并测试

    如果大家觉得我下面的文章写得好,请大家给我一个赞,奢求大伙们的一个关注,有什么不足我们评论区见

    1:人人开源搭建后台管理系统

    前面我们创建好了各个微服务,以及微服务中对应的数据库和开发环境的搭建,接下来我们就要使用人人开源来搭建后台管理系统 按照微服务划分,我们先创建出一个后台管理系统,来操作后面各个服务的后台管理功能,如果我们从头到尾来搭建一个后台管理系统(去写它的前后端,非常耗时),所以我们希望有一个搭建好的脚手架工程,只要我们稍加改造就可以作为一个后台管理系统使用;接下来我们就简单介绍码云上的人人开源

    1.1第一步:我们把对应项目全部下载下来,复制到自己的zlj-mall电商项目中(renren-fast-vue在前端项目中打开)

    配置总的pom.xml文件,新增如下模块

    <module>renren-fast</module> <module>renren-generator</module> <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.atstudying.mall</groupId> <artifactId>mall</artifactId> <version>0.0.1-SNAPSHOT</version> <name>mall</name> <description>聚合服务</description> <packaging>pom</packaging> <modules> <module>mall-coupon</module> <module>mall-order</module> <module>mall-member</module> <module>mall-product</module> <module>mall-ware</module> <module>renren-fast</module> <module>renren-generator</module> </modules> </project>

    1.2 第二步:在renren-fast项目中点击db,选择mysql.sql,为后台管理系统创建对应的数据库mall

    1.3 第三步:在renren-fast中的application-dev.yml文件配置数据库的相关信息

    1.4 第四步:运行renren-fast,测试

    只访问8080是它的后台系统,我们需要前端项目(renren-fast-vue)来跟后端建立连接;

    1.5 第五步:引入renren-fast-vue项目

    在这里我们简单介绍一下Node.js的概念

    前端开发,少不了node.js; Node.js 是一个基 于Chrome V8引擎的JavaScript 运行环境。 http://nodejs.cn/api/ 我们关注与node.js的npm功能就行; NPM是随同NodeJS 一起安装的包管理工具,JavaScript-NPM, Java-Maven; 1)、官网下载安装node.js, 并使用node -v检查版本 2)、配置npm使用淘宝镜像 npm config set registry htp://regis/ry.pm.taobao.org/ 如下图

    前端项目第一次运行,需要在控制台执行如下命令

    # npm install执行完以后,我们会发现在项目下多了一个 node_modules文件夹。我们安装的依赖文件都可以在这里面找到 & npm install

    运行项目命令如下

    # 运行前端项目 & npm run dev

    1.6 第六步:同时运行renren-fast,renren-fast-vue进行前后端联调,登录

    2:逆向工程搭建

    前面我们已经搭建好了后台管理系统,接下来我们就使用逆向工程为每一个微服务生成基本的增删改查代码

    2.1 第一步:复制码云的renren-generator到自己的zlj-mall项目中,并且在聚合服务中增加它的模块

    <module>renren-generator</module>

    2.2 第二步:配置好相关的信息,修改三处信息。

    第一处:修改数据库的用户名密码,和对应的ip地址和数据库application.yml 第二处:generator.properties 第三处:注释掉Controlller模板中的一个Permission注解(现在还没有用到,以后要转化成SpringSecurity的权限控制)

    2.3 第三步:把各个微服务都在代码生成器中逆向生成,一个完整的配置如下

    如下演示的就是mall-coupon微服务的逆向生成

    我把mall-coupon微服务对应的数据库,改成了mall-coupon

    2.4 第四步:启动代码生成器的项目,访问端口,把所有表勾选,点击生成代码到自己指定的位置

    2.5 第五步:在mall-coupon中进行代码替换,如下(我们用mall-coupon进行演示)

    去idea中查看自己的结构是否发生变化

    2.6 第六步:解决默认生成的代码的报错问题——创建一个mall-common

    分析默认代码生成的代码中,缺少的都是公共类,所以我们可以创建一个mall-common微服务,最终希望每一个微服务的公共的类和公共的依赖都写在mall-common里面 如下就是缺少的公共类和依赖

    import com.atstudying.common.utils.PageUtils; import com.atstudying.common.utils.R; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.atstudying.common.utils.PageUtils; import com.atstudying.common.utils.Query; import io.renren.common.xss.SQLFilter; import org.apache.commons.lang.StringUtils; import org.apache.http.HttpStatus;

    2.6.1第一步: 使用maven创建一个mall-common(在zlj-mall项目里,右击,点击Module)

    2.6.2 第二步:让每一个微服务都引入mall-common依赖

    //... <dependency> <groupId>com.atstudying.mall</groupId> <artifactId>mall-common</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> //..

    2.6.3 第三步:给mall-common里面加上每一个微服务都需要的依赖,bean,工具类

    每一个依赖的说明导入mybatis-plus(ORM) 微服务的dao层就不报错了和service层部分不报错了导入lombok(简化实体类的开发,我们之前专了一个lombok插件(在编译的时候会自动为实体类添上getter,setter方法)) @Dtaa注解就不报错了,实体类就不报错了 pom.xml //... <!--导入mybatis-plus 微服务的dao层就不报错了和service层部分不报错了--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.2.0</version> </dependency> <!-- 导入lombok(简化实体类的开发,我们之前专了一个lombok插件(在编译的时候会自动为实体类添上getter,setter方法)) @Dtaa注解就不报错了,实体类就不报错了--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.8</version> </dependency> //... 工具类导入 我们引入R,Query,以后发现里面还需要很多东西,我们继续解决commons-lang:版本号和renren-fast里面的一致 这样StringUtils类就可以不报错了httpcore:让R类里面的httpstatus不报错

    pom.xml

    //... <!--让R类里面的httpstatus不报错--> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.4.12</version> </dependency> <!--版本号和renren-fast里面的一致 这样StringUtils类就可以不报错了--> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> //...

    继续完成下面操作 xss还有一点东西要解决,如下 pom.xml

    <!--让xss类下的servlet有关的类不报错--> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency>

    把renren-fast里面的异常导入,并且只留下xss文件中的两个类

    3:配置&测试微服务基本CRUD功能

    前面我们使用了逆向工程为优惠服务逆向生成了所有代码,接下来我们就要进行测试

    3.1 第一步:整合mybatisplus(我们使用mybatisplus来操作数据库)

    3.1.1 在mall-common中的pom.xml导入公共的mybatis依赖

    //.. <!--导入驱动mysql (放在公共的服务中,因为以后的微服务都要与数据库连接)--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.17</version> </dependency> //..

    3.1.2 配置数据源和导入数据库驱动(在application.yml文件中配置数据源相关信息和数据库驱动)

    application.yml

    spring: datasource: username: root password: root url: jdbc:mysql://192.168.56.10:3306/mall-coupon driver-class-name: com.mysql.jdbc.Driver

    3.1.3 配置mybatis-plus

    在主程序类中使用@MapperScan(“com.atstudying.mall.coupon.dao”) @MapperScan("com.atstudying.mall.coupon.dao") @SpringBootApplication public class MallCouponApplication { public static void main(String[] args) { SpringApplication.run(MallCouponApplication.class, args); } } 告诉mybatis-plus,sql文件的映射位置 在application.yml中进行配置 //.. mybatis-plus: #扫描resources类路径下的叫mapper的,mapper子文件是*的,底下的全部xml文件 mapper-locations: classpath:/mapper/**/*.xml //.. 配置自增主键 application.yml //.. mybatis-plus: global-config: db-config: id-type: auto

    3.2 进行单元测试

    @Test void contextLoads() { CouponEntity couponEntity=new CouponEntity(); couponEntity.setCouponName("222"); couponService.save(couponEntity); }

    4:为所有的微服务项目生成增删改查代码,并测试

    上面已经成功测试了mall-coupon微服务的代码自动生成,并且测试成功,接下来我们自己动手把其他微服务也完成代码自动生成和测试

    就是按照上面1,2,3章节的内容一步一步操作,自己多动手加油

    最后我们的代码生成可以是如下结构

    源代码的结构

    数据库结构

    Processed: 0.012, SQL: 8