失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 第4天-搭建项目(快速搭建电商平台后台管理系统及逆向生成微服务基本功能)

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

时间:2019-08-07 05:08:53

相关推荐

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

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

目前在Gitee开源软件中,人人开源 和 若依 关注度比较高,优品电商平台后台系统采用人人开源的框架

来快速构建,完成基本的CRUD,开发更加关注复杂业务、高并发、高可用以及分布式架构层面。

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

1.1.人人开源快速构建

人人开源说明:

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

1.2.克隆人人开源框架

git clone /renrenio/renren-fast.git

git clone /renrenio/renren-fast-vue.git

1.3.搭建电商后台系统

1.3.1.Java后台

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

改名: gmall-admin注意:将 .git 文件夹删除

将 gmall-admin 聚合到 gmall 工程的 modules 中

<modules><module>gmall-admin</module></modules>

创建数据库 gmall_admin ,执行 gmall_admin 工程里的 MySQL 数据库脚本 mysql.sql

修改 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

修改 gmall_admin 工程 application.yml 中 context-path

servlet:context-path: /gmall_admin

启动 gmall_admin 后台服务

1.3.2.前端工程

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

安装Node.js,并配置 npm 使用淘宝镜像

npm config set registry http://registry.npm install -g cnpm --registry=https://registry.

VSCode中打开 renren-fast-vue 前端工程(更名: gmall-admin-vue )

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

进入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=pm install node-sass --save

启动成功,如下图所示:

启动完成后会自动打开浏览器访问 http://localhost:8001 输入admin / admin 成功进入后台,说明系统搭建成功!

2.逆向生成微服务

2.1.代码生成器

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

git clone /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# 开发者Emailemail=1466787185@# 数据库表前缀(类名不会包含表前缀)tablePrefix=pms_

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

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

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

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

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

gmall-ordergmall-membergmall-coupongmall-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..mon.utils

ConstantPageUtilsQueryR

3..mon.xss

SQLFilter

3..mon.exception

RRException

4.整合MyBatis-Plus

4.1.MyBatis-Plus介绍

MyBatis-Plus 官网:/

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.单元测试

@SpringBootTestclass 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-coupongmall-membergmall-ordergmall-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: 7000spring: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: rootmybatis-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天-搭建项目(快速搭建电商平台后台管理系统及逆向生成微服务基本功能)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。