后台管理系统引入第三方功能模块

86 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第11天,点击查看活动详情

新模块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>

image-20220803164312380

二、启动类添加注解

将第三方的模块也注册到注册中心,后面会不断的使用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图片功能迁移到了第三方服务模块完成!以后再有第三方相关的服务也是一样引入此模块!