文章大纲

一、淘淘商城总体架构介绍
二、淘淘商城重要技术点总结
三、项目常见面试题
四、项目学习(all)资源下载
五、参考文章

一、淘淘商城总体架构介绍

1. 功能架构

 

2. 技术选型

(1)Spring、SpringMVC、Mybatis
(2)JSP、JSTL、jQuery、jQuery plugin(为页面上的元素产生阴影效果的 jQuery 插件)、EasyUI(一系列的jq模板封装)、KindEditor(富文本编辑器)、CSS+DIV
(3)Redis(缓存服务器)
(4)Solr(搜索)
(5)httpclient(调用系统服务)
(6)Mysql
(7)Nginx(web服务器)

3. 技术架构

 

二、淘淘商城重要技术点总结

第一天:项目工程搭建。

1、使用maven构建工程。Maven的继承、聚合、依赖管理。
2、Svn的使用,svn上传下载代码。

第二天:ssm框架整合。

1、mybatis逆向工程。
2、后台管理系统搭建,前台技术使用EasyUI框架。了解easyUI的dategrid的使用方法。

第三天:实现商品添加。

1、商品类目选择。EasyUI的异步tree的使用方法。
2、图片服务器的搭建。使用ftp+http配合,实现图片服务。ftp服务使用vsftpd实现,http服务使用nginx实现。
3、KindEditor富文本编辑器的使用方法。

第四天:规格参数实现。

1、规格参数的解决方案。
a)方案一:创建多个表进行关联实现商品类目。
b)方案二:使用模板方式实现。
2、java对象、json之间的转换。

第五天:前台工程搭建。

1、理解分布式系统架构思想。
2、Jsonp解决ajax跨域调用的问题。

第六天:CMS系统的实现

1、CMS系统的实现思路
2、Httpclient的使用方法
3、首页大广告位的实现

第七天:内容系统添加缓存

1、redis的使用方法及redis集群的搭建
2、系统中添加缓存逻辑
3、缓存的同步方法。

第八天:搜索功能实现

1、solr服务在linux环境的搭建
2、使用solr实现搜索功能。
3、索引库中商品的同步

第九天:商品详情页面实现

1、商品详情页面内容异步加载
2、规格参数按需加载
3、商品详情页面添加缓存及缓存同步

第十天:单点登录系统实现

1、服务接口的开发
2、在分布式环境中使用redis实现session共享
3、使用cookie在多个系统中共享。
4、拦截器的使用方法

第十一天:购物车、订单

1、使用cookie保存购物车信息
2、创建订单系统。发布服务,支持post请求提交json格式的数据。
3、在用户提交订单之前,检查用户的登录状态(拦截器)

第十二天:nginx安装、配置

1、nginx的虚拟机的配置
2、Nginx的反向代理
3、Nginx的负载均衡
4、Nginx的高可用

第十三天:solr集群的搭建、系统部署

1、solrCloud的搭建。Zookeeper的配置、solr集群的分片。
2、Mysql数据库在linux环境的安装
3、使用maven进行系统的热部署。

三、项目常见面试题

1. xx网站并发数

10000-20000左右并发

2. xx项目人员配置

产品经理:3人,确定需求以及给出产品原型图。
项目经理:1人,项目管理。
前端团队:5人,根据产品经理给出的原型制作静态页面。
后端团队:20人,实现产品功能。
测试团队:5人,测试所有的功能。
运维团队:3人,项目的发布以及维护。

3. xx项目开发周期

采用迭代开发的方式进行,一般一次迭代的周期为一个月左右。

4. 你说你用了redis缓存,你redis存的是什么格式的数据,是怎么存的

例如:redis中存储的都是key-value格式的。拿商品数据来说,key就是商品id,value是商品相关信息的json数据。

5. 你前台portal采用4台服务器集群部署,那能前台高并发访问性能提上去了,那数据库会不会造成一个瓶颈,这一块你是怎么处理的?

portal系统在高并发的情况下如果每次请求都请求都查询数据库确实会出现数据库的瓶颈。为了降低数据库压力,在服务层会添加一个缓存,用redis实现,这样的话请求先到缓存中查找是否有缓存的内容,如果有直接从缓存中取数据,如果没有再到数据库中查询。这样数据库的压力就不会那么大了。

6. 你购物车存cookie里边 可以实现不登录就可以使用购物车 那么我现在没有登录把商品存购物车了 然后登录了 然后我换台电脑并且登录了还能不能看见我购物车的信息?如果看不到怎么做到cookie同步,就是在另外一台电脑上可以看到购物车信息

宜立方商城现阶段使用的仅仅是把购物车的商品写入cookie中,这样服务端基本上么有存储的压力。但是弊端就是用户更换电脑后购物车不能同步。打算下一步这么实现:当用户没有登录时向购物车添加商品是添加到cookie中,当用户登录后购物车的信息是存储在redis中的并且是跟用户id向关联的,此时你更换电脑后使用同一账号登录购物车的信息就会展示出来。

7. 如果用户一直添加购物车添加商品怎么办?并且他添加一次你查询一次数据库?互联网上用户那么多,这样会对数据库造成很大压力你怎么办?

当前我们使用cookie的方式来保存购物车的数据,所以当用户往购物车中添加商品时,并不对数据库进行操作。将来把购物车商品放入redis中,redis是可以持久化的可以永久保存,此时就算是频繁的往购物车中添加数据也没用什么问题。

四、项目学习(all)资源下载

  1. 链接:https://pan.baidu.com/s/1BkhsQRAbfPTUYHX-oz3KNQ
    提取码:ebzn
  2. 链接:https://pan.baidu.com/s/1f_5ANFc-TIE5oq-s-mPmAw
    提取码:aayl

五、参考文章

http://yun.itheima.com/course?hm

ssm(Spring、Springmvc、Mybatis)实战之淘淘商城-第十四天(非原创)的更多相关文章

  1. SSM Spring+SpringMVC+mybatis+maven+mysql环境搭建

    SSM Spring+SpringMVC+mybatis+maven环境搭建 1.首先右键点击项目区空白处,选择new->other..在弹出框中输入maven,选择Maven Project. ...

  2. SSM(Spring + Springmvc + Mybatis)框架面试题

    JAVA SSM框架基础面试题https://blog.csdn.net/qq_39031310/article/details/83050192 SSM(Spring + Springmvc + M ...

  3. SSM(Spring +SpringMVC + Mybatis)框架搭建

    SSM(Spring +SpringMVC + Mybatis)框架的搭建 最近通过学习别人博客发表的SSM搭建Demo,尝试去搭建一个简单的SSMDemo---实现的功能是对用户增删改查的操作 参考 ...

  4. SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)

    1. 前言 最近在写毕设过程中,重新梳理了一遍SSM框架,特此记录一下. 附上源码:https://gitee.com/niceyoo/jeenotes-ssm 2. 概述 在写代码之前我们先了解一下 ...

  5. SSM Spring +SpringMVC+Mybatis 整合配置 及pom.xml

    SSM Spring +SpringMVC+Mybatis 配置 及pom.xml SSM框架(spring+springMVC+Mybatis) pom.xml文件 maven下的ssm整合配置步骤

  6. SSM(Spring,SpringMVC,Mybatis)框架整合项目

    快速上手SSM(Spring,SpringMVC,Mybatis)框架整合项目 环境要求: IDEA MySQL 8.0.25 Tomcat 9 Maven 3.6 数据库环境: 创建一个存放书籍数据 ...

  7. SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释(转)

    原文:https://blog.csdn.net/yijiemamin/article/details/51156189# 这几天一直在整合SSM框架,虽然网上有很多已经整合好的,但是对于里面的配置文 ...

  8. 0927-转载:SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释

    这篇文章暂时只对框架中所要用到的配置文件进行解释说明,而且是针对注解形式的,框架运转的具体流程过两天再进行总结. spring+springmvc+mybatis框架中用到了三个XML配置文件:web ...

  9. SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释

    这几天一直在整合SSM框架,虽然网上有很多已经整合好的,但是对于里面的配置文件并没有进行过多的说明,很多人知其然不知其所以然,经过几天的搜索和整理,今天总算对其中的XML配置文件有了一定的了解,所以拿 ...

随机推荐

  1. hadoop主节点(NameNode)备份策略以、恢复方法、操作步骤

    一.dits和fsimage      首先要提到两个文件edits和fsimage,下面来说说他们是做什么的. 集群中的名称节点(NameNode)会把文件系统的变化以追加保存到日志文件edits中 ...

  2. Shell字符串截取处理文件路径

    在生信处理流程中,从最初的fastq文件,经过分析处理后,会生成一堆的后续文件,如何在流程中合理的命名呢? 通常在批处理模式中,我们会得到多个样本*.fastq(或*.fq.*.fastq.gz.*. ...

  3. 【Redis】Redis事务详解,Redis事务支持回滚(不支持悲观锁)

    1.redis事物参考:https://baijiahao.baidu.com/s?id=1613631210471699441&wfr=spider&for=pc (php操作red ...

  4. Spring入门第二十七课

    声明式事务 直接上代码: db.properties jdbc.user=root jdbc.password=logan123 jdbc.driverClass=com.mysql.jdbc.Dri ...

  5. [Win10] 安装虚拟光驱 用于加载ISO等镜像文件

    百度上找到UltraISO安装 一般来说安装到这就基本会显示一个 若经过上述步骤仍没出现虚拟光驱,则尝试进行加载ISO镜像文件到虚拟光驱然后再看看 这样基本就大功告成了~

  6. Python-OpenCV中的图像模糊

    目录 1. 高斯模糊:cv2.GaussianBlur()   主要记录Python-OpenCV中的图像模糊操作: 1. 高斯模糊:cv2.GaussianBlur() def GaussianBl ...

  7. (PHP)redis List(列表)操作

    /** * * List操作 * 列表操作 * 可理解为数组操作 * 插入.删除数据按照一定规律排列的 * 元素可重复 * 适用于队列 * */ //在列表头部插入一个值one,当列表不存在时自动创建 ...

  8. nginx 安装遇到的问题

    今天想学学 nginx,于是先把它安装起来.按照 http://nginx.org/en/linux_packages.html 上面的方法,在我的 ubuntu 虚拟机上很容易地就安装好了.可是要运 ...

  9. Spark TaskScheduler 概述

    TaskScheduler 原理: 1. DAGScheduler 在提交Taskset给底层调度器的时候是面向接口TaskScheduler的, 这符合面向对象中依赖抽象原则,带来底层资源调度器的可 ...

  10. 洛谷P3006 [USACO11JAN]瓶颈Bottleneck(堆模拟)

    传送门 感觉这题的思路还是挺不错的.然而为啥全网就一个题解而且只有代码……然后我只好看着代码理解了好久…… 题意就是有一棵树,每一个节点向他父亲节点连边,且有一个容量表示每一秒可以经过的牛的数量,每一 ...