在练习谷粒商城时使用Spring cloud 整合 oss 进行上传发生了异常,由于太过生僻因此进行记录。
首先说一下我版本:
Spring Boot version | Spring Cloud Version | Spring Cloud Alibaba Version |
---|---|---|
2.4.8 | 2020.0.3 | 2021.1 |
1. 依赖问题
视频中所添加的依赖与官网中的有所不同。
视频中:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alicloud-oss</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
官网:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>aliyun-oss-spring-boot-starter</artifactId>
</dependency>
官网的方式还需要导入依赖控制:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>aliyun-spring-boot-dependencies</artifactId>
<version>1.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
这里说一下,在视频中所导入的依赖并没有版本号,我第一次使用的是官网的依赖,然后再运行是发送了报错,然后换成视频中的方式,这个时候是没有添加版本号的,但是也同样的报错了之后我便加了上去。当然还是报错,(如果这么简单我也就不用记下来了。。。)现在的话我把版本号删除同样没问题想来当时可能是缓存问题。
2、 依赖注入
// 视频中的版本 ,依赖注入保红线,但可以使用
@Autowired
private OSSClient ossClient;
// 修改后的版本, 无异常依赖可以注入
@Autowired
private OSS oss;
3、运行
3.1 使用官网依赖运行:Error creating bean with name ‘aliCloudEdasSdk’
这种方式可以将官网依赖替换为 视频中的依赖方可运行,原因是因为官网依赖需要Spring boot, 而按照视频来进行的话,在父类模块中并没有 spring boot 启动依赖。经测试将官网的依赖放入到 拥有spring boot 依赖的项目中可以正常启动。
官网:
视频:
可以看到视频中方式的依赖自带了spring boot 的依赖。
个人理解如有问题请指出!!!