1.快速搭建电商平台后台管理系统

目前在Gitee开源软件中,人人开源 和 若依 关注度比较高,优品电商平台后台系统采用人人开源的框架
来快速构建,完成基本的CRUD,开发更加关注复杂业务、高并发、高可用以及分布式架构层面。

  • 若依:https://gitee.com/y_project (官网:http://www.ruoyi.vip)
  • 人人开源:https://gitee.com/renrenio (官网:https://www.renren.io)

1.1.人人开源快速构建



人人开源说明:

  • renren-fast:用于快速构建电商后台管理系统(后端)
  • renren-fast-vue:用于快速构建电商后台管理系统(前端)
  • renren-generator:用于快速构建微服务基础CRUD代码

1.2.克隆人人开源框架

git clone https://gitee.com/renrenio/renren-fast.git
git clone https://gitee.com/renrenio/renren-fast-vue.git

1.3.搭建电商后台系统

1.3.1.Java后台

1.将克隆好的renren-fast工程改名gmall-admin拷贝到gmall工程中,并添加到Modules

  • 改名: gmall-admin
  • 注意:将 .git 文件夹删除
  1. 将 gmall-admin 聚合到 gmall 工程的 modules 中
<modules><module>gmall-admin</module>
</modules>
  1. 创建数据库 gmall_admin ,执行 gmall_admin 工程里的 MySQL 数据库脚本 mysql.sql
  2. 修改 gmall_admin 工程中 application-dev.yml 配置文件中 MySQL 的连接配置
spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedruid:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://192.168.56.10:3306/gmall_admin?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghaiusername: rootpassword: root
  1. 修改 gmall_admin 工程 application.yml 中 context-path
servlet:context-path: /gmall_admin
  1. 启动 gmall_admin 后台服务

1.3.2.前端工程

前端工程搭建文档:https://gitee.com/renrenio/renren-fast-vue/wikis/Home

  1. 安装 Node.js ,并配置 npm 使用淘宝镜像
npm config set registry http://registry.npm.taobao.org
npm install -g cnpm --registry=https://registry.npm.taobao.org
  1. VSCode中打开 renren-fast-vue 前端工程(更名: gmall-admin-vue )

  2. 修改前端访问的入口文件 index.js

  3. 进入VSCode终端,安装并运行前端项目

#安装项目所需的依赖到 node_modules 文件中
npm install
#运行项目
npm dev run#Error: nodeб sass@4.9.0 postinstall: node scripts/build.js
#实际是因为sass安装时获取源的问题,使用cnpm进行安装
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install node-sass --save

启动成功,如下图所示:

  1. 启动完成后会自动打开浏览器访问 http://localhost:8001

  1. 输入admin / admin 成功进入后台,说明系统搭建成功!

2.逆向生成微服务

2.1.代码生成器

克隆 renren-generator 改名 gmall-generator 拷贝到 gmall 工程中,并聚合到 modules中

git clone https://gitee.com/renrenio/renren-generator.git

<modules><module>gmall-generator</module>
</modules>

2.2.快速构建微服务

商品服务 gmall-product 基础代码生成步骤:

修改代码生成器 gmall-generator 配置:

1)application.yml

spring:datasource:type: com.alibaba.druid.pool.DruidDataSource#MySQL配置driverClassName: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://192.168.56.10:3306/gmall_pms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghaiusername: rootpassword: root

2)generator.properties

# 域名
mainPath=com.atguigu
# 项目包名
package=com.atguigu.gmall
# 模块名
moduleName=product
# 开发人员
author=zhangwen
# 开发者Email
email=1466787185@qq.com
# 数据库表前缀(类名不会包含表前缀)
tablePrefix=pms_

3)修改Controller 生成类,去除 shiro 相关注解,后续项目中使用 Spring Security

  1. 进入到 renren-generator/src/main/resources/template/Controller.java.vm
  2. 注释 import org.apache.shiro.authz.annotation.RequiresPermissions;
  3. 注释 Controller.java.vm 模板中所有Method方法 @RequiresPermissions

4)运行项目,进入到 代码生成器 控制台,全选 -> 生成代码

5)解压生成的代码包,将 main 文件夹全部拷贝到 gmall-product/src/ 目录下即可

6)按照 gmall-product 基础代码生成步骤,依次生成其它服务的代码

  • gmall-order
  • gmall-member
  • gmall-coupon
  • gmall-ware

3.创建公共服务模块

公共服务模块: gmall-common

  • 每个微服务公共的依赖,Bean,工具类等放入到这里
  • 每个微服务都引入 gmall-common

3.1.gmall-common

3.1.1.创建Maven工程

将 gmall-common 公共服务模块聚合到 modules 中

<modules><module>gmall-common</module>
</modules>

3.1.2.引入公共依赖

引入公共依赖,后续根据需要再依次引入所需的公共依赖

<!-- 微服务公共依赖 -->
<dependencies><!-- mysql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.21</version></dependency><!-- mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.3.2</version></dependency><!-- lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version><scope>provided</scope></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpcore</artifactId><version>4.4.13</version></dependency><dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.6</version></dependency>
</dependencies>

3.2.工具类

3.2.1.com.atguigu.common.utils

  • Constant
  • PageUtils
  • Query
  • R

3.2.2.com.atguigu.common.xss

  • SQLFilter

3.2.3.com.atguigu.common.exception

  • RRException

4.整合MyBatis-Plus

4.1.MyBatis-Plus介绍

MyBatis-Plus 官网:https://baomidou.com/

4.2.导入依赖

在 gmall-common 公共模块中导入依赖

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.3.2</version>
</dependency>

4.3.数据源配置

官网配置

4.3.1.引入数据库驱动

MySQL Connector/J Versions

在 gmall-common 公共模块中导入依赖

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.21</version>
</dependency>

4.3.2.配置数据源

在商品服务 gmall-product 的 application.yml 配置数据源相关信息

spring:datasource:url: jdbc:mysql://192.168.56.10:3306/gmall_pms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghaidriver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: root

4.4.配置MyBatis-Plus

4.4.1.使用@MapperScan

在服务启动类上使用 @MapperScan

@MapperScan(“com.atguigu.gmall.product.dao”)

4.4.2.SQL映射文件

告诉MyBatis-Plus,SQL映射文件位置

mybatis-plus:mapper-locations: classpath:/mapper/product/*.xmlglobal-config:db-config:id-type: auto  #id自增,后续分库分表后再使用其它方式

4.4.3.单元测试

@SpringBootTest
class GmallProductApplicationTests {@Autowiredprivate BrandService brandService;/*** 测试插入*/@Testvoid testSave() {BrandEntity brandEntity = new BrandEntity();brandEntity.setName("华为");brandService.save(brandEntity);}/*** 测试更新*/@Testvoid testUpdate() {BrandEntity brandEntity = new BrandEntity();brandEntity.setBrandId(1L);brandEntity.setDescript("华为");brandService.updateById(brandEntity);}/*** 测试查询*/@Testvoid testQuery() {List<BrandEntity> list = brandService.list(new QueryWrapper<BrandEntity>().eq("brand_id", 1L));list.forEach(item -> {System.out.println(item);});}
}

测试结果:


对其它服务模块依次进行测试:

  • gmall-coupon
  • gmall-member
  • gmall-order
  • gmall-ware

在每个微服务模块 pom 文件中导入公共模块 gmall-common

         <dependency><groupId>com.atguigu.gmall</groupId><artifactId>gmall-common</artifactId><version>0.0.1-SNAPSHOT</version></dependency>

修改每个模块的 application.yml 配置文件,主要是 port 和 数据库名称

server:port: 7000
spring:datasource:url: jdbc:mysql://192.168.56.10:3306/gmall_oms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghaidriver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: root
mybatis-plus:mapper-locations: classpath:/mapper/order/*.xmlglobal-config:db-config:id-type: auto

微服务端口规划

  • 优惠服务(gmall-coupon):5000
  • 会员服务(gmall-member):6000
  • 订单服务(gmall-order):7000
  • 商品服务(gmall-product):8000
  • 仓储服务(gmall-ware):9000

第4天-搭建项目(快速搭建电商平台后台管理系统及逆向生成微服务基本功能)相关推荐

  1. 搭建项目-快速搭建电商平台后台管理系统及逆向生成微服务基本功能

    1 快速搭建电商平台后台管理系统 目前在Gitee开源软件中,人人开源和若依关注度比较高,优品电商平台后台系统采用人人开源的框架来快速构建,完成基本的CRUD,开发更加关注复杂业务.高并发.高可用以及 ...

  2. 电商平台后台管理系统--->项目前期准备(需求分析、系统设计、环境搭建与配置文件)

    1 绪论 在计算机时代日益发展的今天,计算机技术正快速融入这个社会的每一个领域.自计算机应用于管理领域以来,信息系统的开发与应用获得惊人的发展,电子商务也应运而生. 随着电子商务网站的经营不断扩大,有 ...

  3. 电商平台后台管理系统--环境搭建与管理员登录(一)

    将之前写好的ssm复制,重新命名为myecpbm,然后修改相关文件名和配置,文件目录结构和要修改的项目名如下图一 图一 1.选中改文件,Window==>show view==>Navig ...

  4. 电商平台后台管理系统项目介绍

    MIMO电商平台后台管理系统 项目简介 基于 Vue3 + Vite2 + Typescript 开发的电子商务平台,组件库使用 element plus: 数据为 mock 模拟,登录账号密码随意填 ...

  5. 基于SSM框架的电商平台后台管理系统

    基于SSM框架的电商平台后台管理系统 1.主要技术: 2.需求分析 数据库表结构 项目目录结构 运行效果: 源码获取两种方式 下载地址: 源码在这里 1.主要技术: Spring SpringMVC ...

  6. 电商平台后台管理系统

    程序设计逻辑简单,适合观摩学习使用. 文章目录 前言 一.开发技术和工具 二.功能模块 3.运行截图 总结 前言 一个电商网站,既在于它的网站前台设计制作的精良优美,更在于电商平台 后台的实用性和便捷 ...

  7. 电商平台后台管理系统--->系统详细设计(订单管理模块)

    5.3 订单管理 订单管理包括创建订单.查询订单.删除订单和查看订单明细等功能 5.3.1 订单列表显示 1.前端页面 (1)效果图 图5.11 订单列表显示页面 (2)前面页面主要技术介绍及主要功能 ...

  8. 电商平台后台管理系统--->操作方法说明

    目录 6 操作方法说明 6.1 登录首页 (1)输入http://localhost:8080/admin_login.jsp登录到后台登录页面 (2)输入管理员账号:admin,密码:123456即 ...

  9. 电商平台后台管理系统--->系统详细设计(用户管理模块)

    5.4 用户管理 5.4.1客户列表显示 1.前端页面 (1)效果图 图5.19 客户列表页面 (2)前端页面主要技术介绍及主要功能 在该页面中定义了三个id的标签,第一个id为userListTb的 ...

最新文章

  1. 中学再不学编程就晚了?MIT、JHU研究:程序员大脑思考代码的机制不对劲
  2. 打造完全绿色的TOTAL COMMANDER
  3. Crawler:基于urllib+requests库+伪装浏览器实现爬取国内知名招聘网站,上海地区与机器学习有关的招聘信息(2018.4.30之前)并保存在csv文件内
  4. 中文通用百科知识图谱(CN-DBpedia)
  5. XenServer 6.5实战系列之三:Prepare for XenServer 6.5
  6. 重启服务器之home下文件全没,小白宝典——树莓派实用工具分享(大神绕路)
  7. 农历算法-ASP.NET(C#)(转)
  8. 云小课|DGC数据开发之基础入门篇
  9. 再谈谈ADO.NET Data Service
  10. 如何不用更改底层来实现Dao多样化
  11. MySQL高可用之PXC详解
  12. react-native之react-native-vector-icons
  13. rhel6.6的内核源码安装与BCM4322无线网卡驱动的安装
  14. ISFP——思想起决定作用
  15. 图片怎么压缩到200K以内,这3个图片压缩方法,简单有效
  16. oracle中排序--拼音、笔画、偏旁部首
  17. jzoj 3426. 封印一击 (Standard IO)
  18. c++动态数组的优点,创建和删除
  19. 【已解决】使用keras对resnet, inception3进行fine-tune出现训练集准确率很高但验证集很低的问题(BN)
  20. 2016/10/08 TCL技术笔试题目

热门文章

  1. 相继上一篇,thingsboard的二次开发环境配置和简单的logo替换
  2. SLC MLC 和TLC
  3. HTML5版切水果游戏 HTML5游戏极品源码下载
  4. linux 版本号 笔记本_在笔记本电脑上安装Linux完全版
  5. 怎么用手机png转jpg?手机图片格式转换器推荐
  6. FID(Fusion-in-Decoder models)
  7. 活动抽奖Java抽奖算法
  8. visual2019没有勾选的在如何加入_批量下载天猫商品时,如何过滤gif格式详情图的实例...
  9. Android 锁屏状态下启动应用很慢的原因分析
  10. 计算流体力学简介(一)——一些基本概念