新模块mall-third-service
为了更好的管理,所以我们把第三方的功能都放到一个模块里,这样层次清晰,分类明确 像短信服务、图片服务、视频服务等等都放在此模块,以后实际开发其实也是这种方式! 所以我们自己也要有这个分层的意识!
接口开发
一、配置文件
这里去除了mp的依赖,因为引入mp就需要配置数据库服务器地址
<dependencies> <dependency> <groupId>com.caq.mall</groupId> <artifactId>mall-common</artifactId> <version>0.0.1-SNAPSHOT</version> <exclusions> <exclusion> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alicloud-oss</artifactId> <version>2.1.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
二、启动类添加注解
将第三方的模块也注册到注册中心,后面会不断的使用feign组件进行微服务之间调用 所以加入注册中心必不可少!
- 主启动类@EnableDiscoveryClient
- application.yml配置文件如下:
这里的bucket其实是不存在的,是们我自己定义的属性,这是为了在代码中读取到名字
- ``` #用来指定注册中心地址 spring: cloud: nacos: discovery: server-addr: localhost:8848 #nacos地址 alicloud: access-key: ... secret-key: ... oss: endpoint: oss-cn-hangzhou.aliyuncs.com bucket: pyy-mall ```
- bootstrap.yml文件指定注册中心
#用来指定配置中心地址 spring: application: name: mall-third-service cloud: nacos: config: server-addr: 127.0.0.1:8848 namespace: 2bbd2076-36c8-44b2-9c2e-17ce5406afb7 file-extension: yaml extension-configs: - data-id: mall-third-service.yml group: DEFAULT_GROUP refresh: true
三、测试
@SpringBootTest class MallThirdServiceApplicationTests { @Resource OSSClient ossClient; @Test void contextLoads() throws FileNotFoundException { // 上传文件流。 InputStream inputStream = new FileInputStream("C:\Users\Jack\Desktop\LeetCode_Sharing.png"); ossClient.putObject("pyy-mall", "2022/testPhoto3.png", inputStream); // 关闭OSSClient。 ossClient.shutdown(); System.out.println("上传完成..."); } }
没问题,至此我们把OSS图片功能迁移到了第三方服务模块完成!以后再有第三方相关的服务也是一样引入此模块!