文章大纲

一、淘淘商城总体架构介绍
二、淘淘商城重要技术点总结
三、项目常见面试题
四、项目学习(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. linux日常管理-防火墙selinux

    关闭防火墙 SELINUX=disabled 可以是三种状态 # enforcing - SELinux security policy is enforced.打开# permissive - SE ...

  2. mount/umount文件挂载

    用法: mount [-lhV] mount -a [选项] mount [选项] [--source] <源> | [--target] <目录> mount [选项] &l ...

  3. [poj1737]Connected Graph(连通图计数)

    题意:输出题中带有$n$个标号的图中连通图的个数. 解题关键: 令$f(n)$为连通图的个数,$g(n)$为非联通图的个数,$h(n)$为总的个数. 则$f(n) + g(n) = h(n)$ 考虑标 ...

  4. 【总结整理】javascript进阶学习(慕课网)

    数组 数组是一个值的集合,每个值都有一个索引号,从0开始,每个索引都有一个相应的值,根据需要添加更多数值. 二维数组 二维数组 一维数组,我们看成一组盒子,每个盒子只能放一个内容. 一维数组的表示: ...

  5. Entity Framework Code-First(9.7):DataAnnotations - Table Attribute

    DataAnnotations - Table Attribute: Table attribute can be applied to a class. Default Code-First con ...

  6. debian系Linux中文系统目录改为英文目录的解决方法

    之前给笔记本装的kali是英文版,系统安装好了后再修改系统语言为中文,或者直接就用英文系统,也是可以的. 后来笔记本的硬盘坏掉了,换ssd,然后安装kali的中文版,中文是方便,但是进去后就不爽了. ...

  7. Dapper.Common基于Dapper的开源LINQ超轻量扩展

    Dapper.Common Dapper.Common是基于Dapper的LINQ实现,支持.net core,遵循Linq语法规则.链式调用.配置简单.上手快,支持Mysql,Sqlserver(目 ...

  8. 简单的html兼容(参考js和css的常规写法)

    参考往常css/js的浏览器选择加载 <!--[if lte IE 8]> <link rel="stylesheet" href="IEBrower. ...

  9. The instance of entity type 'xxxx' cannot be tracked because another instance with the same key value for {'Id'} is already being tracked.

    一.问题描述 问题:The instance of entity type 'xxxx' cannot be tracked because another instance with the sam ...

  10. JDK1.8源码(十一)——java.util.TreeMap类

    在前面几篇博客分别介绍了这样几种集合,基于数组实现的ArrayList 类,基于链表实现的LinkedList 类,基于散列表实现的HashMap 类,本篇博客我们来介绍另一种数据类型,基于树实现的T ...