写在前面

这个项目大概是20天的课程,断断续续地跟着视频敲,自己完善一些简单的增删改查等等,算是基本完成了。其实只是完成了主流程,即用户搜索——放入购物车——注册——登录——下单——支付。也算是体会到了一个商城开发的不易了。这次学习全是前后端分离的,即后端只提供接口,前端调用接口。也是一种当下十分流行的结构了。在这个项目中使用了很多微服务框架(SpringCloud),很多框架都是大概知道了怎么用,有什么用就上手了。如果日后再有这方面的需求或许会加深一些理解吧。

项目架构

首先来看架构图:

Tips:大致解释:前端主要使用了vue及其相关的框架来构建界面,通过nodejs来部署到服务器,请求的发送通过nginx进行转发,全部请求都要经过网关进行处理,在网关处需要进行权限的鉴定和处理,确定有对应权限后才可以转发访问微服务集群。微服务集群有很多,不同权限的用户可以访问不同的微服务。所有的请求都是由网关进行转发的,使用了相应的框架做了负载均衡,并有熔断处理。微服务与微服务之间的通知调用使用了消息队列框架来实现。最终使用了redis,mysql等来存储不同类型的数据。使用了elasticsearch来当索引库,作为搜索服务的数据库。

使用的技术要点

前端技术:

基础的HTML、CSS、JavaScript(基于ES6标准)

Vue.js 2.0以及基于Vue的UI框架:Vuetify

前端构建工具:WebPack

前端安装包工具:NPM

Vue脚手架:Vue-cli

Vue路由:vue-router

ajax框架:axios

基于Vue的富文本框架:quill-editor

后端技术:

基础的SpringMVC、Spring 5.0和MyBatis3

Spring Boot 2.0.1版本

Spring Cloud 最新版 Finchley.RC1

Redis-4.0

RabbitMQ-3.4

Elasticsearch-5.6.8

nginx-1.10.2

FastDFS - 5.0.8

Thymeleaf

JWT

踩坑记录

1.在使用PageHelper插件做分页模糊查询时,由于数据库连接参数没有正确设置导致中文参数无法被识别。

解决方案:

url: jdbc:mysql://localhost:3306/leyou?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai

以后每次写jdbc连接路径时都要写上后面的编码格式设置参数和时区设置参数

2.在使用了最新版本的spring-cloud和springboot后,eureka会自动导入一个jackson的解析包,使得我们的返回值都变成了xml.只需要在发起请求的类注解写上produces,里面写上JSON前缀即可。

@RequestMapping(value = "brand",produces = MediaType.APPLICATION_JSON_VALUE)

3.vue的相关命令:

npm init -y # 进行项目初始化

npm install vue --save # 安装vue

npm install # 安装依赖

npm run dev # 启动项目

4.2020.7.2号晚11点,出现了莫名其妙的BUG,最后莫名其妙的好了。仔细思考后应该是因为前端的变量名没有写好,导致后端接收不正确。这也提醒了我以后一定要先写好后端代码再去写前端,,,同时也要把逻辑理清楚,不然会出现很多莫名其妙的错误。

前端的v-model和script里面的变量名称一定要对应起来,不然会出现意想不到的错误,同时也必须和后台接口接收的变量名对应起来。处理的时候要理清前端和前端的关系,不要太着急,要仔细理清前后端的逻辑。

5.2020.7.3号晚11点 配置FastDFS配置了三个小时。从这次的配置里我学到了很多时候版本不同要配置的也不同,所以一定要跟着自己教程里的东西去配置,不要去下载最新版本什么的,因为网上的资料太层次不齐,搜到的不一定正确。还是要按照资料里给的配置去配置。同时一定要注意,配置linux的各种东西都十分繁琐,一不小心会漏掉一步,因此一定要细心细心再细心。也算对linux的一些操作有了一些了解吧。或许会在以后自己的项目中用这个配置好的FastDFS。

6.关于vue里的watch执行周期:根据官方API文档所说,如下回调:

// 该回调会在任何被侦听的对象的 property 改变时被调用,不论其被嵌套多深

c: {

handler: function (val, oldVal) { /* ... */ },

deep: true

},

这样的回调会在改变时调用,而我遇到的问题是在改变时却没有被调用,因此可以使用以下的情况:

// 该回调将会在侦听开始之后被立即调用

d: {

handler: 'someMethod',

immediate: true

},

会在侦听开始后立即被调用,这样的handler方法一定会被执行。再结合deep属性即可做到立即获取对象了。

注:我在自定义的层级选择器中和修改的表单中都加了该选项,页面就会显示完全了。

7.修改品牌的业务逻辑:先把中间表的所有相关部分删除,再插入新的即可(想不到我会想这么久这玩意,好菜啊我)

8.在使用axios传递数据到后台时,要使用$qs把Request Payload数据转换成表单数据,不然后台无法接收

9.在vue中的方法里的赋值语句可以使用js的表达式来进行操作,如name : name == 0?null:1 这样的表达式

10.非坑 在学习完该项目后去补习一下java的lamda表达式和一些其他的基础。java基础太差了.

11.在redis中配置了配置文件后,需要使用

```sh

redis-server redis.conf

```

来启动已配置好的redis

总结

通过这次的大型项目,也算是了解到真正的项目是有多么的复杂。在这次的项目中,很多技术我都是第一次听说。而且很多技术都只是粗略地了解的一下,权当日后入门了吧。在这次编码过程中,发现自己的java基础还是很薄弱,暑假会再学习一下java的基础,对java的基础特性加强训练。

源码分享

乐优商城服务器部署_黑马乐优商城项目总结相关推荐

  1. Java服务器部署基于OpenCV的C++图像处理项目(三)图片上传并返回处理图

    Java服务器部署基于OpenCV的C++图像处理项目(三)图片上传并返回处理图 1.上传图片并返回灰度图功能 由于使用的springboot开发,直接写一个upload接口供图片上传,以下是spri ...

  2. 积分商城系统开发_专业提供积分商城系统定制解决方案

    积分商城系统开发_专业提供积分商城系统定制解决方案 一.什么是积分商城? 1.积分商城的第一种理解,偏重于"积分".即积分商城是专门为消化"积分"这一奖励而特设 ...

  3. 阿里服务器部署springboot+vue前后端分离项目

    服务器部署springboot+vue前后端分离项目 最近刚刚在实习熟悉公司的业务,所有尝试着自己将项目部署到服务器上.本次部署的项目是Spring Boot+Vue前后端分离项目,后端使用的技术有M ...

  4. 云服务器部署SpringBoot工程-瑞吉外卖项目

    Linux部署SpringBoot工程-瑞吉外卖项目 云平台:阿里云 终端软件:Tabby Terminal 部署项目项目: SpringBoot-瑞吉外卖 自己第一次从本地web项目搭建到云端部署发 ...

  5. 力士乐伺服电机编码器调零_力士乐伺服电机故障与维修排除备份构成

    先从内到外,进行力士乐伺服电机的分析,然后进行维修,进行排除. 1先从外观检查,看驱动器和电机是否有损坏:闻一下是否有烧过的异味:晃动一下驱动器或电机看是否有杂物的响动.有就拆开,直接就可以判断出故障 ...

  6. 力士乐伺服电机编码器调零_力士乐伺服电机编码器故障维修来这里

    力士乐伺服电机编码器故障维修来这里:如果您在行业中使用伺服电机,则要确保它们始终处于完美的工作状态.尽管安排所有电子设备的定期维护是一个好主意,但是如果您可以自己测试伺服电机,则可以节省一些服务成本. ...

  7. 力士乐电源模块故障代码_力士乐DKC系列伺服驱动器维修报警代码

    力士乐伺服驱动器维修报警代码DKC故障诊断(错误诊断信息F): F205 凸轮轴故障 F207 切换至未初始化运行模式 F208 UL电机类型已变 F209 PL装载参数默认值 F211 DISC-E ...

  8. 力士乐伺服电机编码器调零_力士乐REXROTH电机 博世伺服电机调试方法

    力士乐REXROTH电机 ,博世伺服电机调试方法 型号展示:MHD090B-058-NG0-UN 博士力士乐伺服电机可使控制速度,位置精度非常准确,可以将电压信号转化为转矩和转速以驱动控制对象.博士力 ...

  9. 力士乐伺服电机编码器调零_力士乐REXROTH伺服参数设置

    力士乐 REXROTH 伺服参数设置 文中简述了力世乐 ECODRIVE03 伺服驱动系统通过并行接口进行位置块(组)操作模 式( position block mode )的控制原理,并例举了与伺服 ...

  10. 服务器部署_打包前后端代码

    一.打包后端代码 1.将项目打包成jar包 mvn clean package -DskipTests 2.本地测试运行 java -jar .\flower-0.0.1-SNAPSHOT.jar 3 ...

最新文章

  1. 记一次MySQL字符集冲突导致的报错
  2. AI“入侵”华尔街 高端职位也不保
  3. mysql 客户端_技术分享 | MySQL 客户端连不上(1045 错误)原因全解析
  4. 新一代的编译工具 SWC,97年小哥写的~
  5. Android UI开发第八篇——ViewFlipper 左右滑动效果
  6. springboot中动态获取bean工具类
  7. sql与mysql数据对接_SQL Server 对接MySQL 数据库
  8. Python 基础测试题(含答案)
  9. android卡片 弹簧滑动,一种通用式弹簧卡扣的制作方法
  10. Cocos2d-x应用:保存背景音乐和音效设置
  11. Windows高效文件搜索工具/Everything/Listary/uTools
  12. con 元器件符号_Protues 元器件符号
  13. java jdk--同时安装两个jdk并且切换
  14. ad9854matlab仿真,AD9854 | 直接数字频率合成器 | 亚德诺(ADI)半导体
  15. 从事互联网产品运营所需的8条技能
  16. winbugs MATLAB,winbugs问题求教:
  17. 国际移动用户识别码(IMSI)
  18. idm显示您正在使用一个假冒的序列号_IDM提示假序列号解决办法
  19. JDK环境变量及配置简介
  20. 刚高考完有些迷茫不知道做些什么?谈一谈我的看法

热门文章

  1. 13.mtk lcm gamma调试
  2. 复指数与高斯函数乘积的傅里叶变换_球谐光照——球谐函数
  3. Java面试基础篇-Redis缓存
  4. Altium Designer--如何走差分等长线
  5. 二次规划与非线性规划及matlab应用
  6. 唐宇迪学习笔记2:Python数据分析处理库——pandas
  7. 场效应管调光电路图_MOS管驱动电路,看这里就啥都懂了
  8. SWAT模型高阶应用暨无资料地区建模、不确定分析与气候变化、土地利用对面源污染影响模型改进案例分析
  9. android 字体设置方正,(技术)Android 默认非衬线字体修改为衬线字体
  10. 挑战云主机战:学习使用云端服器象棋云库