洛希极限: Cao Jiwen洛希极限Cao Jiwen
开发简单易用的 SDK(简历加分项)

1.为什么需要 Starter?

理想情况:开发者只需要关心调用哪些接口、传递哪些参数,就跟调用自己写的代码一样简单。

开发 starter 的好处:开发者引入之后,可以直接在 application.yml 中写配置,自动创建客户端

2.Starter开发流程

2.1环境初始化

spring-boot-configuration-processor 的作用是自动生成配置的代码提示

依赖(一定要移除 build)

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-configuration-processor</artifactId>
  <optional>true</optional>
</dependency>
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <optional>true</optional>
</dependency>

2.2配置类(启动类)

import icu.luoxi.interfacesdk.client.ApiClient;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

/**
 * @author Cao Jiwen
 * @version V1.0
 */
@Configuration
@ConfigurationProperties("api.client")//配置的前缀,见2.4
@Data
@ComponentScan
public class ApiClientConfig {
    private String accessKey;

    private String secretKey;

    @Bean
    public ApiClient luoXiApiClient() {
        return new ApiClient(accessKey, secretKey);
    }
}

2.3注册配置类

文件路径:resources/META_INF/spring.factories,创建spring.factories文件

# spring boot starter
org.springframework.boot.autoconfigure.EnableAutoConfiguration=icu.luoxi.interfacesdk.ApiClientConfig

mvn install 打包代码为本地依赖包
创建新项目(复用 server 项目)、测试

2.4新项目引用示例

pom文件引入依赖

<dependency>
    <groupId>icu.luoxi</groupId>
    <artifactId>interface-sdk</artifactId>
    <version>0.0.1</version>
</dependency>

这样配置文件可以使用我们自己开发的SDK了

api:
  client:
    secret-key: luoxi
    access-key: abcdefgh