谷粒商城之分布式基础篇p1-p50
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相关推荐
- M5(项目)-01-尚硅谷谷粒商城项目分布式基础篇开发文档
M5(项目)-01-尚硅谷谷粒商城项目分布式基础篇开发文档 分布式基础篇 一.环境搭建 各种开发软件的安装 虚拟机: docker,mysql,redis 主机: Maven, idea(后端),Vs ...
- 实战 - 谷粒商城项目:基础篇First
文章目录 SpringCloud商城- 基础篇 1. 环境搭建 1.1 centos7安装docker 1.2 docker安装MySQL5.7 1.3 docker安装Redis 1.4 环境安装配 ...
- 谷粒商城之分布式基础(二)
6 商品服务 6.1 三级分类 商城的商品页面展示是一个三级分类的.有一级分类.二级分类.三级分类.这就是我们接下来要进行的操作. 6.1.1 数据库 首先我们在gulimall_pms这个数据库中的 ...
- 谷粒商城--分布式基础篇2
谷粒商城–分布式基础篇2(前端基础) 目录 谷粒商城--分布式基础篇2(前端基础) 5 前端 5.1 ES6 5.1.1 简介 5.1.2 什么是ECMAStript 5.1.3 ES6 新特性 5. ...
- 安排,谷粒商城java分布式开发基础篇高级篇与高可用集群架构篇2020
来源: 来自网络,如侵权请告知博主删除????. 仅学习使用,请勿用于其他- 最近有小伙伴管我要分布式这类的项目,还有一些要商城的,还有要springboot,springcloud,k8s等,几乎涵 ...
- 谷粒商城三阶段课件_谷粒商城分布式基础篇一
微服务架构图 微服务划分图 搭建虚拟开发环境 1.下载安装VirtualBox 下载安装Vagrant 2.安装好后,创建一个存放vagrant box的目录,方便日后统一管理,比如叫做../cent ...
- 谷粒商城电商项目 分布式基础篇
更多视频,JAVA收徒 QQ:987115885谷粒商城电商项目分布式基础篇01.简介-项目介绍.avi02.简介-项目整体效果展示.avi03.简介-分布式基础概念.avi04.简介-项目微服务架构 ...
- 谷粒商城--订单服务--高级篇笔记十一
1.页面环境搭建 1.1 静态资源导入nginx 等待付款 --------->detail 订单页 --------->list 结算页 --------->confirm 收银页 ...
- 分布式基础篇--介绍
一.分布式基础篇 1 项目简介 1.1 项目背景 1.2 电商模式 市面上有5种常见的电商模式 B2B.B2C.C2B.C2C.O2O 1.2.1 B2B 模式 B2B(Business to Bus ...
最新文章
- Micron Flash芯片识别心得
- python框架django面试问别人什么问你_django面试会问什么
- Spring Security构建Rest服务-0100-前言
- 7行代码AC——1010 一元多项式求导 (25分)
- 什么是商业智能(BI),以及其与数据分析的区别?
- 《Spring》(十六)---- JDBC
- (转)为Spring集成的Hibernate配置二级缓存
- 库克发文纪念苹果成立45周年:伟大使命还有待实现
- linux刷脚本需要什么工具吗,利用宝塔Linux一键挂载脚本工具挂载www目录方法
- GPS时钟装置,北斗卫星授时,ntp校时服务器,网络时间服务器
- echarts饼图legend标识位置
- 【Camera基础(二)】摄像头驱动原理和开发V4L2子系统驱动架构
- 老卫带你学---DDSM乳腺癌数据研究
- MATLAB画个直方图
- 厂房消防宣传设置要求和注意事项
- 撰写论文时常用的研究方法有哪些?
- 嵌入式开发日记(9)——多线程与socket通信
- 网页收录数量与网站排名有关系吗?
- ffmpeg截取视频的片段
- 我挑了 10 本数据库类好书,来送你
热门文章
- linux命令小总结(上)
- 解决Win系统找不到api-ms-win-core-timezone-l1-1-0.dll问题
- 图像角点检测之Trajkovic算子
- excel 如何隔行按规律选取数据
- 一个数如果恰好等于它的因子之和,这个数就称为“完数“。(因子:除去这个数本身的约数)
- 油猴脚本开发学习1--豌豆荚快速查看所有版本
- [硬盘分区]EASEUS怎么用(EASEUS Partition Master使用教程)
- C语言判断一个整数是不是素数(质数)、求100以内的所有素数、求前50个素数
- 《成为专业程序员的6个---心灵鸡汤》
- 一、JAVA调用海康威视SDK实现摄像头预览