# gulimall **Repository Path**: my-learning/gulimall ## Basic Information - **Project Name**: gulimall - **Description**: 谷粒商城 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-11-08 - **Last Updated**: 2021-11-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ##项目介绍 gulimall-common 公共模块 gulimall-coupon 谷粒商城-优惠卷服务 gulimall-member 谷粒商城-会员服务 gulimall-order 谷粒商城-订单服务 gulimall-product 谷粒商城-商品服务 gulimall-ware 谷粒商城-仓储服务 renren-fast 人人开源后台管理模板 renren-generator 人人开源逆向工程 >感谢人人开源作者,这里用的是开源版本![https://gitee.com/renrenio] ![项目架构图](docx/谷粒商城-微服务架构图.jpg) ###Nacos 作为注册中心 1.所有服务引入同一管理jar common com.alibaba.cloud spring-cloud-alibaba-dependencies 2.2.2.RELEASE pom import 2.配置文件 spring application: name: gulimall-coupon cloud: nacos: discovery: server-addr: 127.0.0.1:8848 3.开启服务注册 @EnableDiscoveryClient ###Nacos 作为配置中心 1. com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config 2.rescourse 配置bootstrap.properties 这是约定 spring.application.name=gulimall-member spring.cloud.nacos.config.server-addr=127.0.0.1:8848 Nacos配置管理新增配置默认为gulimall-member.properties 将application.properties(该文件无作用) 复制过去 随时更改自动刷新静态文件 这时gulimall-member.properties会接管application.properties全部内容 **优先使用配置中心。** 3.使用 @RefreshScope 注解刷新 取值 @Value("${gulimall-member.name}") private String name; 命名空间 (用于配置隔离) 例如: 开发/测试/生产 环境隔离/每个微服务隔离(使用分组来区分环境) 栗子:spring.cloud.nacos.config.namespace=70d6266c-3e5b-46e2-bf6b-4c879788cbac spring.application.name=gulimall-coupon spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.namespace=配置空间 spring.cloud.nacos.config.group=配置分组 ![命名空间示例](docx/命名空间.jpg) ![命名空间示例](docx/命名空间(1).jpg) 同时加载多个配置集 spring.application.name=gulimall-coupon spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.namespace=cdc0abe0-a267-4dab-8be3-0853ea841146 spring.cloud.nacos.config.group=dev #没有配置会默认读取默认分组 都没有会读取配置文件 #配置文件名称 spring.cloud.nacos.config.extension-configs[0].data-id=datasource.yml #分组 spring.cloud.nacos.config.extension-configs[0].group=dev #是否动态刷新 spring.cloud.nacos.config.extension-configs[0].refresh=true #配置文件名称 spring.cloud.nacos.config.extension-configs[1].data-id=mybatis-plus.yml #分组 spring.cloud.nacos.config.extension-configs[1].group=dev #是否动态刷新 spring.cloud.nacos.config.extension-configs[1].refresh=true ![命名空间示例](docx/命名空间(2).jpg) ### OpenFegin 1.引入jar org.springframework.cloud spring-cloud-starter-openfeign 2.远程调用放入fegin包下 CouponFeginService 调用gilimall-coupon服务下/coupon/coupon/testOpenFegin这个功能 @FeignClient("gilimall-coupon") public interface CouponFeginService { @RequestMapping("/coupon/coupon/testOpenFegin") public R memberCoupons(); } 3.开启fegin @EnableFeignClients(basePackages = "com.atguigu.gulimall.member.fegin") 同理; ### Gateway org.springframework.cloud spring-cloud-starter-gateway 1.@EnableDiscoveryClient spring: cloud: gateway: routes: #示例 可以n个 规则 - id: query_route uri: https://www.baidu.com predicates: - Query=url,baidu 具体参照:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/ ###解决跨域 遇见请求 OPTIONS 真实请求 1.通过nginx部署为同一域 2.配置请求允许跨域 Access-control-allow-origin 支持哪些来源跨域 Access-control-allow-methods 支持方法跨域 Access-control-allow-credentials 跨域请求默认不包含cookie 可以包含 true Access-control-expose-headers 跨域请求暴漏字段 Access-control-Max-age 最大有效时间 ###七牛云存储 阿里云存储 >阿里云存储 1.阿里云存储 -》对象存储OSS-》控制台 存储空间 Bucket 建议一个项目一个Bucket 对象/文件 Object 地域 Region 访问域名 Endpoint 访问密钥 AccessKey ailibaba一些代码demo https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md 整合oss存储 https://github.com/alibaba/aliyun-spring-boot/tree/master/aliyun-spring-boot-samples/aliyun-oss-spring-boot-sample >服务端上传(影响带宽) 服务端签名后上传 两种方式 >七牛云存储