2021年8月11日 准备把谷粒商城这个项目笔记大概记录一下!

2022年7月21日晚上23:30,二刷谷粒商城!!!

当前进度:P17

坚持就是胜利!!!

P1-P4

主要是介绍项目使用了哪些技术,以及介绍项目是前后端分离模式开发,前端是使用vue开发,后端使用springcloud+spirngcloud alibaba,项目分为三篇 基础篇 高级篇 架构篇

P5 项目结构图

p6 虚拟机环境搭建

安装虚拟机软件

先下载virtualbox 这个软件和vmware差不多


下载完成后安装即可

安装linux

可以下载镜像 再用virtualbox一步步创建 ,但是有更简单的方式
使用vagrant

下载安装vagrant

安装后cmd敲 vagrant能出相关命令即安装成功!

cmd再使用vagrant init centos/7

这时会在用户下面出现一个文件

再使用vagrant up命令

这个时候,vartualbox已经有了虚拟机了

使用vagrant ssh即可连接虚拟机 ,因为系统已经默认有一个vagrant用户(这里不用像以前还装一个crt或者xshell之类的远程软件,直接使用cmd就能连接)
启动虚拟机 可以在virtual box上启动,也可以直接cmd使用命令 vagrant up
root用户密码也是vagrant

p7 虚拟机网络设置

为了不用端口映射,我们这里没有用 NAT模式(网络地址转换模式)
而是采用仅主机 模式

先查看本地ip网卡

设置文件虚拟机ip


vargrant ssh登陆后查看虚拟机ip

互相ping一下 主机和虚拟机 看是否都能ping通,能ping通即可!

p8 安装docker

以后我们的redis和mysql 等安装在docker
之前下载过docker的,使用命令先移除

下载依赖等
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install docker-ce docker-ce-cli containerd.io

启动docker

开机自启 sudo systemctl enable docker

p9 docker配置阿里云镜像

四条命令

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [“https://chqac97z.mirror.aliyuncs.com”]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

p10 docker 安装mysql

下载mysql镜像

创建容器
–p是虚拟机与容器端口映射
–name是给容器取名
挂载相当于一个快捷方式 左边是虚拟机文件 右边是容器文件

查看容器

进入容器

在挂载目录配置


设置开机自启动:sudo docker update mysql --restart=always

p11安装redis

进入redis的docker容器 直接进入客户端

编辑配置文件,启用aof持久化

p12 开发环境配置

jdk 1.8
配置maven 镜像加速

下载vscode,安装插件 写前端代码

p13配置git

下载git,注册 码云

生成公钥,配置码云 ssh免密登陆

p14 使用码云创建项目

新建仓库 ,用idea拉取代码
新建5个服务

设置git忽略 文件
push到码云

p15数据库初始化


设置docker mysql容器自动启动

p16快速搭建人人开源 后台系统

从 码云上导入 人人开源的 后台与前台系统,快速搭建

renren-fast

renren-fast-vue

前端需要安装node.js环境 npm类似后端的maven

设置npm淘宝镜像

package.json 指定各种依赖版本

控制台 npm install

安装的各个依赖模块在node_modules下面

npm run dev启动项目

即可跳出登陆页面,登陆 前后端联调

注意:这里有坑,有时候node和saas版本不支持,要匹配版本
这里我用的node是

sass版本是

具体参考https://blog.csdn.net/hancoder/article/details/113821646

p17使用人人 逆向工具项目


配置逆向数据库,生成代码复制到项目中

生成的代码有些报错的少了依赖和工具类,
1.common添加依赖
2.把renren-fast的工具类复制到我们项目的 common

p18 配置与测试crud

配置数据库连接 配置mybatis主键自增等

p19逆向生成各个模块并测试

把多个服务都逆向生成

p20 介绍要使用的分布式组件

我们要使用 springcloud +springcloud alibaba组件

p 21 nacos注册中心

在阿里云下载nacos注册中心组件服务,启动

在我们自己的common服务中添加nacos依赖,

然后配置注册中心地址

p22 openFeign远程调用


注意 在启动类上要加注解 启用feign

p23 nacos配置中心

导入依赖

新建配置文件bootstrap.优先级比application高

在配置中心新建一个配置文件


使用@value 结合 @RefreshScope即可动态获取配置中心配置

p24 nacos 命名空间 分组

命名空间

可以基于环境 比如开发dev 测试test 生产环境配置,也可以基于不同服务来设置 比如建立一个 商品product服务的命名空间
命名空间有对应的ID,在idea bootstrap配置文件中使用id


配置命名空间的id

配置集

分组


配置默认使用的是default分组

使用下面的 1111 分组

我们的项目以服务名 为命名空间,以分组为不同环境

p25 nacos多配置集

我们可以把配置文件拆分成多部分

p26网关gateway

介绍了网关 route功能,还有过滤器filter功能

p27创建测试网关

讲解了一下网关配置

p28 前端技术栈


var let es6之后使用let
const常量

p29 解构

数组解构

对象解构

另外一种解构,将person的name属性赋值给abc

字符串


表达式

p31 es6箭头函数

和java的lambda表达式差不多

箭头函数结合解构表达式

p32 es6对象优化

第一个 object类似java 的map集合方法
第二个 assign 把属性复制到第一个参数

声明对象,有点反解构的意思

p33 es6 map reduce

map就是映射处理数组中每一个元素的意思

reduce就是接着map的返回结果,进行进一步的处理

p34 promise异步编排

p35模块化

类似java中的导包

先导出

要用这个变量的模块导入即可

不取名字,直接export default

p36 Vue

p37 vue基本语法和插件

主要简单讲了一下语法 ,浏览器安装插件,vscode安装插件

p38 vue单向绑定和双向绑定

v-bind v-model

p39 vue指令

v-on 简写

v-for

v-if v-show 展示
key是唯一值,可以加快渲染

p40 计算属性和侦听器

计算属性

监听器

过滤器(还可以设置全局过滤器)

p41组件化

全局组件 可以直接使用


局部组件需要注册

p42 vue声明周期和钩子函数

主要有一下几个钩子函数

p43 vue脚手架模块化开发


运行项目: npm run dev

访问

项目结构

config下的index.js可以配置端口等


代码主要在src

index.html

main.js挂载了index.html

main.js的router是router包下的index.js导出的


main.js引用的comment组件 App



路由里面配置了各种路径,路由视图根据路径匹配不同的组件,这hello组件是我们自己定义的



p44 使用elementUI


安装完后需要引用

菜单路由设置:

这里是单页面应用,只有一个html界面 index.html


路由配置:



单文件组件:

p45 商品服务 三级分类-查询-递归树

每个父级分类下面有多个子分类,mybatis plus中使用@tableField注解声明表中不存在这个字段

拿到一级分类,并设置一级分类的子分类

@Overridepublic List<CategoryEntity> cateTree2() {List<CategoryEntity> categoryEntities = baseMapper.selectList(null);List<CategoryEntity> level1List = categoryEntities.stream().filter(categoryEntity -> categoryEntity.getParentCid() == 0)//先过滤出一级分类.map(categoryEntity -> {categoryEntity.setChildren(getChildren(categoryEntity, categoryEntities));return categoryEntity;//对一级分类的每个分类实体,添加子级分类}).sorted((cat1, cat2) -> {return cat1.getSort() - cat2.getSort();//排序}).collect(Collectors.toList());return level1List;}

这一步,子分类还有子分类 ,用到了递归

//拿到父元素的子级分类private List<CategoryEntity> getChildren(CategoryEntity root, List<CategoryEntity> all) {//传入的root是一级分类,以及all 所有的分类List<CategoryEntity> childrens = all.stream().filter(categoryEntity -> {return categoryEntity.getParentCid().equals(root.getCatId());//拿到了二级分类}).map(categoryEntity -> {//二级分类下面有又有三级分类categoryEntity.setChildren(getChildren(categoryEntity, all));return categoryEntity;}).sorted((cat1, cat2) -> {return (cat1.getSort() == null ? 0 : cat1.getSort()) - (cat2.getSort() == null ? 0 : cat2.getSort());//排序}).collect(Collectors.toList());return childrens;}

p46 三级分类-配置网关路由与路径重写

在前端建立了 商品菜单->商品分类管理 菜单

前端配置接口路径,所有请求直接路由到网关

p47 配置跨域

nginx可以设置跨域

网关配置跨域

p48前端树形展示三级分类

data为后端返回的数据

p49删除菜单

给每个分类下面添加append remove按钮

根据条件判断显示不显示

p50删除菜单-逻辑删除



也可以单独配置 删除 不删除 对应的值

谷粒商城之分布式基础篇p1-p50相关推荐

  1. M5(项目)-01-尚硅谷谷粒商城项目分布式基础篇开发文档

    M5(项目)-01-尚硅谷谷粒商城项目分布式基础篇开发文档 分布式基础篇 一.环境搭建 各种开发软件的安装 虚拟机: docker,mysql,redis 主机: Maven, idea(后端),Vs ...

  2. 实战 - 谷粒商城项目:基础篇First

    文章目录 SpringCloud商城- 基础篇 1. 环境搭建 1.1 centos7安装docker 1.2 docker安装MySQL5.7 1.3 docker安装Redis 1.4 环境安装配 ...

  3. 谷粒商城之分布式基础(二)

    6 商品服务 6.1 三级分类 商城的商品页面展示是一个三级分类的.有一级分类.二级分类.三级分类.这就是我们接下来要进行的操作. 6.1.1 数据库 首先我们在gulimall_pms这个数据库中的 ...

  4. 谷粒商城--分布式基础篇2

    谷粒商城–分布式基础篇2(前端基础) 目录 谷粒商城--分布式基础篇2(前端基础) 5 前端 5.1 ES6 5.1.1 简介 5.1.2 什么是ECMAStript 5.1.3 ES6 新特性 5. ...

  5. 安排,谷粒商城java分布式开发基础篇高级篇与高可用集群架构篇2020

    来源: 来自网络,如侵权请告知博主删除????. 仅学习使用,请勿用于其他- 最近有小伙伴管我要分布式这类的项目,还有一些要商城的,还有要springboot,springcloud,k8s等,几乎涵 ...

  6. 谷粒商城三阶段课件_谷粒商城分布式基础篇一

    微服务架构图 微服务划分图 搭建虚拟开发环境 1.下载安装VirtualBox 下载安装Vagrant 2.安装好后,创建一个存放vagrant box的目录,方便日后统一管理,比如叫做../cent ...

  7. 谷粒商城电商项目 分布式基础篇

    更多视频,JAVA收徒 QQ:987115885谷粒商城电商项目分布式基础篇01.简介-项目介绍.avi02.简介-项目整体效果展示.avi03.简介-分布式基础概念.avi04.简介-项目微服务架构 ...

  8. 谷粒商城--订单服务--高级篇笔记十一

    1.页面环境搭建 1.1 静态资源导入nginx 等待付款 --------->detail 订单页 --------->list 结算页 --------->confirm 收银页 ...

  9. 分布式基础篇--介绍

    一.分布式基础篇 1 项目简介 1.1 项目背景 1.2 电商模式 市面上有5种常见的电商模式 B2B.B2C.C2B.C2C.O2O 1.2.1 B2B 模式 B2B(Business to Bus ...

最新文章

  1. Micron Flash芯片识别心得
  2. python框架django面试问别人什么问你_django面试会问什么
  3. Spring Security构建Rest服务-0100-前言
  4. 7行代码AC——1010 一元多项式求导 (25分)
  5. 什么是商业智能(BI),以及其与数据分析的区别?
  6. 《Spring》(十六)---- JDBC
  7. (转)为Spring集成的Hibernate配置二级缓存
  8. 库克发文纪念苹果成立45周年:伟大使命还有待实现
  9. linux刷脚本需要什么工具吗,利用宝塔Linux一键挂载脚本工具挂载www目录方法
  10. GPS时钟装置,北斗卫星授时,ntp校时服务器,网络时间服务器
  11. echarts饼图legend标识位置
  12. 【Camera基础(二)】摄像头驱动原理和开发V4L2子系统驱动架构
  13. 老卫带你学---DDSM乳腺癌数据研究
  14. MATLAB画个直方图
  15. 厂房消防宣传设置要求和注意事项
  16. 撰写论文时常用的研究方法有哪些?
  17. 嵌入式开发日记(9)——多线程与socket通信
  18. 网页收录数量与网站排名有关系吗?
  19. ffmpeg截取视频的片段
  20. 我挑了 10 本数据库类好书,来送你

热门文章

  1. linux命令小总结(上)
  2. 解决Win系统找不到api-ms-win-core-timezone-l1-1-0.dll问题
  3. 图像角点检测之Trajkovic算子
  4. excel 如何隔行按规律选取数据
  5. 一个数如果恰好等于它的因子之和,这个数就称为“完数“。(因子:除去这个数本身的约数)
  6. 油猴脚本开发学习1--豌豆荚快速查看所有版本
  7. [硬盘分区]EASEUS怎么用(EASEUS Partition Master使用教程)
  8. C语言判断一个整数是不是素数(质数)、求100以内的所有素数、求前50个素数
  9. 《成为专业程序员的6个---心灵鸡汤》
  10. 一、JAVA调用海康威视SDK实现摄像头预览