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

电商项目——初识电商——第一章——上篇
电商项目——分布式基础概念和电商项目微服务架构图,划分图的详解——第二章——上篇
电商项目——电商项目的虚拟机环境搭建_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,为后台管理系统创建对应的数据库mall
    • 1.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-common
      • 2.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张图片
按照微服务划分,我们先创建出一个后台管理系统,来操作后面各个服务的后台管理功能,如果我们从头到尾来搭建一个后台管理系统(去写它的前后端,非常耗时),所以我们希望有一个搭建好的脚手架工程,只要我们稍加改造就可以作为一个后台管理系统使用;接下来我们就简单介绍码云上的人人开源

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

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

电商项目——快速开发人人开源搭建后台管理系统&代码生成器逆向工程搭建——第六章——上篇_第3张图片
配置总的pom.xml文件,新增如下模块

renren-fast
		renren-generator

<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.0modelVersion>
	<groupId>com.atstudying.mallgroupId>
	<artifactId>mallartifactId>
	<version>0.0.1-SNAPSHOTversion>
	<name>mallname>
	<description>聚合服务description>
	<packaging>pompackaging>
	<modules>
		<module>mall-couponmodule>
		<module>mall-ordermodule>
		<module>mall-membermodule>
		<module>mall-productmodule>
		<module>mall-waremodule>
		<module>renren-fastmodule>
		<module>renren-generatormodule>
	modules>
project>

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

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

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

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

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/
如下图

电商项目——快速开发人人开源搭建后台管理系统&代码生成器逆向工程搭建——第六章——上篇_第6张图片
前端项目第一次运行,需要在控制台执行如下命令

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

运行项目命令如下

# 运行前端项目
& npm run dev

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

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

2:逆向工程搭建

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

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

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

		<module>renren-generatormodule>

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

第一处:修改数据库的用户名密码,和对应的ip地址和数据库application.yml
电商项目——快速开发人人开源搭建后台管理系统&代码生成器逆向工程搭建——第六章——上篇_第9张图片
第二处:generator.properties
电商项目——快速开发人人开源搭建后台管理系统&代码生成器逆向工程搭建——第六章——上篇_第10张图片
第三处:注释掉Controlller模板中的一个Permission注解(现在还没有用到,以后要转化成SpringSecurity的权限控制)
电商项目——快速开发人人开源搭建后台管理系统&代码生成器逆向工程搭建——第六章——上篇_第11张图片

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

如下演示的就是mall-coupon微服务的逆向生成
电商项目——快速开发人人开源搭建后台管理系统&代码生成器逆向工程搭建——第六章——上篇_第12张图片

我把mall-coupon微服务对应的数据库,改成了mall-coupon
电商项目——快速开发人人开源搭建后台管理系统&代码生成器逆向工程搭建——第六章——上篇_第13张图片
电商项目——快速开发人人开源搭建后台管理系统&代码生成器逆向工程搭建——第六章——上篇_第14张图片
电商项目——快速开发人人开源搭建后台管理系统&代码生成器逆向工程搭建——第六章——上篇_第15张图片

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

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

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

电商项目——快速开发人人开源搭建后台管理系统&代码生成器逆向工程搭建——第六章——上篇_第17张图片
去idea中查看自己的结构是否发生变化
电商项目——快速开发人人开源搭建后台管理系统&代码生成器逆向工程搭建——第六章——上篇_第18张图片

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;

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

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

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

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

//...
<dependency>
			<groupId>com.atstudying.mallgroupId>
			<artifactId>mall-commonartifactId>
			<version>0.0.1-SNAPSHOTversion>
		dependency>
		//..

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

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

  • 每一个依赖的说明
  • 导入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>
        //...
  • 工具类导入
    电商项目——快速开发人人开源搭建后台管理系统&代码生成器逆向工程搭建——第六章——上篇_第23张图片
    电商项目——快速开发人人开源搭建后台管理系统&代码生成器逆向工程搭建——第六章——上篇_第24张图片
    我们引入R,Query,以后发现里面还需要很多东西,我们继续解决
  • commons-lang:版本号和renren-fast里面的一致 这样StringUtils类就可以不报错了
  • httpcore:让R类里面的httpstatus不报错

pom.xml

//...
  
        <dependency>
            <groupId>org.apache.httpcomponentsgroupId>
            <artifactId>httpcoreartifactId>
            <version>4.4.12version>
        dependency>
        
        <dependency>
            <groupId>commons-langgroupId>
            <artifactId>commons-langartifactId>
            <version>2.6version>
        dependency>
      
        //...

继续完成下面操作
电商项目——快速开发人人开源搭建后台管理系统&代码生成器逆向工程搭建——第六章——上篇_第25张图片
xss还有一点东西要解决,如下
pom.xml

  
        <dependency>
            <groupId>javax.servletgroupId>
            <artifactId>servlet-apiartifactId>
            <version>2.5version>
            <scope>providedscope>
        dependency>

把renren-fast里面的异常导入,并且只留下xss文件中的两个类
电商项目——快速开发人人开源搭建后台管理系统&代码生成器逆向工程搭建——第六章——上篇_第26张图片

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

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

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

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

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

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

//..
 
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>8.0.17version>
        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

  1. 在主程序类中使用@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);
	}
}
  1. 告诉mybatis-plus,sql文件的映射位置
    在application.yml中进行配置
//..
mybatis-plus:
#扫描resources类路径下的叫mapper的,mapper子文件是*的,底下的全部xml文件
  mapper-locations: classpath:/mapper/**/*.xml
  //..
  1. 配置自增主键
    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);

	}

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

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

上面已经成功测试了mall-coupon微服务的代码自动生成,并且测试成功,接下来我们自己动手把其他微服务也完成代码自动生成和测试
电商项目——快速开发人人开源搭建后台管理系统&代码生成器逆向工程搭建——第六章——上篇_第30张图片

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

最后我们的代码生成可以是如下结构
电商项目——快速开发人人开源搭建后台管理系统&代码生成器逆向工程搭建——第六章——上篇_第31张图片

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

数据库结构
电商项目——快速开发人人开源搭建后台管理系统&代码生成器逆向工程搭建——第六章——上篇_第33张图片

你可能感兴趣的:(电商项目)