数据结构:
1、分类
一共分为三级,即一级分类、二级分类、三级分类。
比如:家用电器是一级分类,电视是二级分类,那么超薄电视就是三级分类。
2、平台属性和销售属性
平台属性和平台属性值主要用于商品的检索,每个三级分类对应的属性都不同。
销售属性,就是商品详情页右边,可以通过销售属性来定位一组spu下的哪款sku。可以让当前的商品详情页,跳转到自己的“兄弟”商品。
不同销售属性的组合也就构成了一个spu下多个sku的结构。
关系:
平台属性, 就是之前分类下面,辅助搜索的,类似于条件的属性。
而销售属性是商品详情页中不同规格的属性信息。
平台属性:
销售属性:
SPU和SKU:
SPU(Standard Product Unit):标准化产品单元。是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。
SKU=Stock Keeping Unit(库存量单位)。即库存进出计量的基本单元,可以是以件,盒,托盘等为单位。SKU这是对于大型连锁超市DC(配送中心)物流管理的一个必要的方法。现在已经被引申为产品统一编号的简称,每种产品均对应有唯一的SKU号。
比如,咱们购买一台iPhoneX手机,iPhoneX手机就是一个SPU,但是你购买的时候,不可能是以iPhoneX手机为单位买的,商家也不可能以iPhoneX为单位记录库存。必须要以什么颜色什么版本的iPhoneX为单位。比如,你购买的是一台银色、128G内存的、支持联通网络的iPhoneX ,商家也会以这个单位来记录库存数。那这个更细致的单位就叫库存单元(SKU)。
首先通过检索搜索出来的商品列表中,每个商品都是一个sku。每个sku都有自己独立的库存数。也就是说每一个商品详情展示都是一个sku。
一般的电商系统你点击进去以后,都能看到这个商品关联了其他好几个类似的商品,而且这些商品很多的信息都是共用的,比如商品图片,海报、销售属性等。
那么系统是靠什么把这些sku识别为一组的呢,那是这些sku都有一个公用的spu信息。而它们公共的信息,都放在spu信息下。
关系:
范围上来说Spu包含sku
Spu表和sku表是一对多的关系
搭建后台gmall-manage-web模块
gmall-manage-web的application.properties配置信息:-----与user的基本一致,端口号换一下,dubbo服务名称换一下
# 服务端口
server.port=8082
#修改日志级别------debug: 有的没的都打印
logging.level.root = info
# dubbo的配置
# dubbo中的服务名称
spring.dubbo.application=manage-web
# dubbo的通讯协议名称
spring.dubbo.protocol.name=dubbo
# zookeeper注册中心的地址
spring.dubbo.registry.address=192.168.199.129:2181
# zookeeper的通讯协议的名称
spring.dubbo.registry.protocol=zookeeper
# dubbo的服务的扫描路径
spring.dubbo.base-package=com.atguigu.gmall
## dubbo的consumer在三秒钟之内每间隔一秒进行一次重新访问,默认一秒钟超时,
## 三次访问之后会直接抛超时异常,所以我们在开发阶段,可以将consumer设置的超时时间延长,方便断点调试
# 设置超时时间(默认是1000毫秒,改成600倍---十分钟)
spring.dubbo.consumer.timeout=10000
## consumer.check 是启动消费端时,是否检查服务端能否正常访问。
## 如果选择true,那启动消费端时,必须保证提供端服务正常,否则接口无法注入。
# 设置是否检查服务存在
spring.dubbo.consumer.check=false
搭建后台gmall-manage-service模块
gmall-manage-service的application.properties配置信息:--------与user基本一致,端口号+1,服务名称更改
# 服务端口
server.port=8071
# jdbc
spring.datasource.password=82465
spring.datasource.username=root
spring.datasource.url=jdbc:mysql://localhost:3306/gmall_study?serverTimezone=UTC&characterEncoding=UTF-8
# mybtais配置
mybatis.mapper-locations=classpath:mapper/*Mapper.xml -----*/
mybatis.configuration.map-underscore-to-camel-case=true
# 解决问题:java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
mapper.identity=MYSQL
#修改日志级别------debug: 有的没的都打印
logging.level.root = info
## dubbo的配置
# dubbo中的服务名称
spring.dubbo.application=manage-service
spring.dubbo.protocol.name=dubbo
# zookeeper注册中心的地址-------------这里还不知道对不对
spring.dubbo.registry.address=192.168.199.129:2181
# zookeeper的通讯协议的名称
spring.dubbo.registry.protocol=zookeeper
# dubbo服务的扫描路径------------只到gmall路径,避免访问不当服务路径错误
spring.dubbo.base-package=com.atguigu.gmall
# dubbo 端口号: 53669
前后端的跨域问题:
1、前端127.0.0.1:8888、后端127.0.0.1:8082
2、前端和后端因为来自不同的网域,所以在http的安全协议策略下,不信任
3、解决方案,在springmvc的控制层也就是项目gmall-manage-web的Controller类中加入@CrossOrigin跨域访问的注解