Java项目《谷粒商城》Java架构师 | 微服务 | 大型电商项目

踩坑合集
使用版本(相对老师更高)
springboot 2.7.8
springcloud 2021.0.5
springcloud alibaba 2021.0.4.0
p6 无法以在线的方式安装 centos
- 从 cmd 中获取镜像链接,用 fdm 离线下载
- 将镜像添加到管理列表,vagrant box add <box-name> <box-path>
- 初始化镜像,vagrant init <box-name>
- 启动镜像,vagrant up
p16 npm 安装 node-sass 速度慢/错误
配置文件的路径:win:C:\Users\[你的账户名称]\.npmrc
1) 修改为淘宝镜像
npm config set registry https://registry.npm.taobao.org
2) 设置 sass 的来源
sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
3) 卸载 saas,再次安装
npm uninstall saas
npm install saas
p22 引入 srpingcloud openfeign 项目启动报错
由于Spring Cloud Feign在Hoxton.M2 RELEASED版本之后不再使用Ribbon而是使用spring-cloud-loadbalancer,所以不引入spring-cloud-loadbalancer会报错.
- nacos中排除ribbon依赖
- 引入 spring-cloud-loadbalancer
p25 nacos 多配置不生效
需要将相关的配置(如连接 nacos,nacos 多配置文件数据),需要填写到 bootstrap.yml/bootstrap.properties
文件
2020版本以后,官方重构了bootstrap引导配置的加载方式,还需添加spring-cloud-starter-bootstrap依赖,使nacos读取
p27 gulimall-gateway 创建后无法运行
gulimall-common 中已引入 spring-boot-starter-web
,spring-cloud-start-gateway 中也引入了这个包
在 gateway 的 pom.xml 里,common依赖排除 start-web 即可
P46 renren-fast 注册到服务中心
报错1
java.lang.NoSuchMethodError: 'com.google.common.collect.UnmodifiableIterator com.google.common.collect.Sets$SetView.iterator()'
解决
追加依赖
<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>30.1-jre</version> </dependency>
报错2
Caused by: java.lang.NullPointerException: Cannot invoke "org.springframework.web.servlet.mvc.condition.PatternsRequestCondition.toString()" because the return value of "springfox.documentation.spi.service.contexts.Orderings.patternsCondition(springfox.documentation.RequestHandler)" is null
原因
在 springboot2.6.x
往上,starter-actuator 和 swagger2 版本间存在冲突
解决
引入的 common 依赖,排除 spring-boot-starter-actuator
<dependency> <groupId>com.agg.gulimall</groupId> <artifactId>gulimall-common</artifactId> <version>0.0.1-SNAPSHOT</version> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </exclusion> </exclusions> </dependency>
p47 网关配置后还报错跨域
老师的配置的 corsWebFilter()
中的配置需要变更
由 allowedOrigin
调整为 allowedOriginPatterns
p62 alicloud-oss 官方文档和老师视频里的不一致
- 依赖引入的不一致
- yml 配置不一致
按老师的配置
xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alicloud-oss</artifactId> <version>1.5.1.RELEASE</version> </dependency> yml spring: cloud: alicloud: access-key: *** secret-key: *** oss: endpoint: *** bucket-name: ***
如果版本过高,会报错:
Parameter 0 of method inetIPv6Util in com.alibaba.cloud.nacos.utils.UtilIPv6AutoConfiguration required a single bean, but 2 were found: - spring.cloud.inetutils-org.springframework.cloud.commons.util.InetUtilsProperties: defined in unknown location - inetUtilsProperties: defined by method 'inetUtilsProperties' in class path resource [org/springframework/cloud/commons/util/UtilAutoConfiguration.class]
按 23 年阿里官网的配置
xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>aliyun-oss-spring-boot-starter</artifactId> <version>1.0.0</version> </dependency> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.15.1</version> </dependency> yml alibaba: cloud: access-key: *** secret-key: *** oss: endpoint: o***m bucket-name: ***
============================================
正在推进中,后续还有踩坑,继续补充