SDK开发

为什么需要Starter?

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

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

starter开发流程

首先我们先创建一个新项目

创建一个springBoo项目

 

 为项目添加依赖

完成创建后修改maven配置把他配置

 

修改依赖

修改版本号为0.0.1 

删除

 

 创建完这个项目后,会默认生成一个Springboot启动类,但我们并不打算运行一个web项目,而是提供一个现成的客户端对象给用户使用。

 

 现在我们的目标是为用户生成一个可用的客户端对象,刚才我们是如何生成的呢?我们手动创建了一个新的对象实例,而现在,我们希望用户能通过引入starter的方式直接使用客户端,不需要手动创建所以我们需要编写一个配置类。

删除启动类,创建配置类AynuClientConfig.java

编写配置类 

@ConfigurationProperties 是一个非常有用的注解,它允许你绑定前缀为特定值的属性到一个配置类上。

@Configuration
//能够读取application.yml的配置,读取到配置后,把读到的配置设置到我们这里的属性中,
//这里给所以的配置加上前缀“aynu.client”
@ConfigurationProperties("aynu.client")
@Data
//自动扫描,使Spring能够自动注册相应的Bean
@ComponentScan
public class AynuClientConfig {
    private String accessKey;
    private String secretKey;

    @Bean
    public AynuClient aynuClient(){
        return new AynuClient(accessKey,secretKey);
    }
}

这个Bean(AynuClient)具体怎么实现,需要自己根据需求设计。

在resources下创建文件夹META-INF

并在META-INF目录下创建spring.factories

spring.factories:定义了 Spring Boot 的自动配置。它是一个标准的Java Properties 文件,用于指定要自动配置的类。这个文件中的每一行都是一个配置项,包含两个部分:配置项的全限定类名和对应的自动配置类。它们之间使用等号(=)进行分隔。在 Spring Boot 应用启动时,它会加载这个 spring.factories 文件并根据其中的配置项自动进行相应的配置。

在spring.factories文件内编写配置项为自动引入配置的类。

org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.aynu.aynuclientsdk.AynuClientConfig

 

上述配置项指定了要自动配置的类 com.yupi.yuapiclientsdk.YuApiclientConfig,它是我们刚刚编写的配置类通过在 spring.factories 文件中配置我们的配置类,Spring Boot 将会在应用启动时自动加载和实例化YuApiClientConfig,并将其应用于我们的应用程序中。这样,我们就可以使用自动配置生成的 yuApiclient 对象,而无需手动创建和配置。

最后把这个包使用maven安装到本地仓库(记着删除test下的启动类)

所需依赖:

<groupId>com.aynu</groupId>
<artifactId>aynu-client-sdk</artifactId>
<version>0.0.1</version>

 

这样这个sdk就算制作好了

在其中项目中引用后,在yml中也会有配置提示

我们在sdk中配置的bean,使用

@Autowired AynuClient aynuClient;

注入即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拉普兰德做的到吗?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值