文章大纲

一、淘淘商城总体架构介绍
二、淘淘商城重要技术点总结
三、项目常见面试题
四、项目学习(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. Intent的简单概述

    Intent是负责在系统组件之间传递信息的一个对象,就像名字一样,是一个意图,可以将当前组件的意图传递给系统,例如启动Activity等,还可以在传递的时候附加上一些值,可以用Bundle对象封装这些 ...

  2. 06_android虚拟机介绍 05_sdkManager介绍

    如果你不对SDK Manager进行设置,它默认会去谷歌官网下载最新的内容.由于官网被墙了,要么你FQ要么去设置代理.通过代理去下载相关的内容. 每一个android版本都对应着一个API的版本号.如 ...

  3. [bzoj1568]李超线段树模板题(标志永久化)

    题意:要求在平面直角坐标系下维护两个操作: 1.在平面上加入一条线段.记第i条被插入的线段的标号为i. 2.给定一个数k,询问与直线 x = k相交的线段中,交点最靠上的线段的编号. 解题关键:注意标 ...

  4. Hadoop Reducer个数设置

    在默认情况下,一个MapReduce Job如果不设置Reducer的个数,那么Reducer的个数为1.具体,可以通过JobConf.setNumReduceTasks(int numOfReduc ...

  5. 《精通Spring4.X企业应用开发实战》读后感第七章(创建增强类)

  6. 8.使用hydra对端口进行爆破

    如果对开启端口的服务不清楚,请看我之前写的文章:https://www.cnblogs.com/bmjoker/p/8833316.html 2018,网站的防护(sql,xss...)的安全保护也已 ...

  7. html5表单及新增的改良元素

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. 洛谷P1038 神经网络

    P1038 神经网络 题目背景 人工神经网络(Artificial Neural Network)是一种新兴的具有自我学习能力的计算系统,在模式识别.函数逼近及贷款风险评估等诸多领域有广泛的应用.对神 ...

  9. Miller-Rabin素性测试|Pollard's Rho算法

    Miller-Rabin 素性测试 Miller-Rabin 素数测试 一本通上的M-R不透彻啊~ Miller-Rabin是利用随机化算法判断一个数是合数还是素数. 首先,如果一个数N是素数,那么他 ...

  10. jsp内置对象request使用方法2

    <%@page import="java.text.SimpleDateFormat"%> <%@page import="java.util.Date ...