您的位置:首页 > 娱乐 > 明星 > 北京网络营销咨询公司_网络编程技术及应用_香港域名注册网站_百度竞价开户流程

北京网络营销咨询公司_网络编程技术及应用_香港域名注册网站_百度竞价开户流程

2024/10/5 10:15:28 来源:https://blog.csdn.net/m0_74484354/article/details/142614678  浏览:    关键词:北京网络营销咨询公司_网络编程技术及应用_香港域名注册网站_百度竞价开户流程
北京网络营销咨询公司_网络编程技术及应用_香港域名注册网站_百度竞价开户流程

Spring–boot自动配置原理案例–阿里云–starter

定义这个starter的作用是它可以将阿里云的工具类自动放入IOC容器中,供人使用。
我们看一看构建starter的过程,其实就是在atuoconfigure模块中加入工具类,然后写一个配置类在其中将工具类放入IOC容器,之后在starter中引入atuoconfigure模块
在这里插入图片描述
我们在配置类中的代码,作用是将AliOSSUtils类放入IOC容器,使用时可以自动注入。

package com.aliyun.oss;import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
//说明配置类
@Configuration
//直接将配置类AliOSSProperties注入IOC容器
@EnableConfigurationProperties(AliOSSProperties.class)public class AliOSSAutoConfiguration {//将第三方类注入@Bean//把配置类当成参数注入public AliOSSUtils aliOSSUtils(AliOSSProperties aliOSSProperties){AliOSSUtils aliOSSUtils = new AliOSSUtils();//用set函数放好阿里云的配置参数类aliOSSUtils.setAliOSSProperties(aliOSSProperties);return aliOSSUtils;}}

starter模块引入atuoconfigure模块,在pom文件中加入依赖

<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-oss-spring-boot-autoconfigure</artifactId><version>0.0.1-SNAPSHOT</version></dependency>

下面的代码是我们的oss工具类:

package com.aliyun.oss;import org.springframework.web.multipart.MultipartFile;import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;/*** 阿里云 OSS 工具类*/
public class AliOSSUtils {private AliOSSProperties aliOSSProperties;
//获得配置类public AliOSSProperties getAliOSSProperties() {return aliOSSProperties;}public void setAliOSSProperties(AliOSSProperties aliOSSProperties) {this.aliOSSProperties = aliOSSProperties;}/*** 实现上传图片到OSS* 我们的文件用的是MultipartFile类来传输文件*/public String upload(MultipartFile file) throws IOException {//获取阿里云OSS参数String endpoint = aliOSSProperties.getEndpoint();String accessKeyId = aliOSSProperties.getAccessKeyId();String accessKeySecret = aliOSSProperties.getAccessKeySecret();String bucketName = aliOSSProperties.getBucketName();// 获取上传的文件的输入流InputStream inputStream = file.getInputStream();// 避免文件覆盖String originalFilename = file.getOriginalFilename();//使用UUID类生成随机的名字同时加上文件后缀名String fileName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));//上传文件到 OSSOSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);ossClient.putObject(bucketName, fileName, inputStream);//文件访问路径//先从  endpoint中分割出协议部分(如 "https:"),并取第一部分(即协议部分)//添加bucket名称//再取 endpoint的第二部分String url = endpoint.split("//")[0] + "//" + bucketName + "." + endpoint.split("//")[1] + "/" + fileName;// 关闭ossClientossClient.shutdown();return url;// 把上传到oss的路径返回}
}

我们建立一个测试类,在其中调用OSS的工具类

package com.huihui.controller;import com.aliyun.oss.AliOSSUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import java.io.IOException;@RestController
public class ossController {@Autowiredprivate AliOSSUtils ossUtils;@PostMapping("/uploadImage")public String uploadOss(MultipartFile image) throws IOException {//上传文件到阿里云 OSSString url=ossUtils.upload(image);return url;}
}

我们使用postman发送文件,
在这里插入图片描述
发送后我们就看到了输出了一个网址,我们再到阿里云中看一看
在这里插入图片描述

发现我们的文件已经传输到了阿里云上。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com