跳至主要內容

🪂自定义配置

wind大约 3 分钟

推荐
自2.0.1版本开始,sms4j支持更自由的厂商差异化配置,如果你可以通过自主的设定配置信息然后将配置对象交托给sms4j的配置工厂即可,这样做的好处是配置的来源可以多样化
sms4j只关注拿到的数据,而不在意数据的来源,用户可以更加自由的去选择,例如取自其他的服务或者接口,甚至于取自redis或MQ等中间件均可
SupplierFactory是一个托管差异化配置的工厂,他里面存储了所有厂商的差异化配置,我们可以通过set方法来设置对应的厂商配置
示例:

    //unisms短信差异化配置
    public void setConfig(){
        //以下空字符串仅为演示使用,实际项目可以通过各种途径获取相应的数据
        UniConfig uni = UniConfig.builder()
                .accessKeyId("")
                .templateId("")
                .templateName("")
                .signature("")
                .build();
        SupplierFactory.setUniConfig(uni);
    }

提示

使用这种形式的配置比较灵活,只要你能保证在项目启动后或者你修改配置后按照上述形式执行一次代码即可

在以上的示例中我们通过UniConfig的建造者构建出来了一个UniConfig对象,并通过SupplierFactory.setUniConfig()方法将配置信息交给了sms4j的配置工厂,配置工厂会替换新的配置对象
并刷新实现类的内部配置信息
目前各厂商的配置建造者如下:

//阿里云短信配置
AlibabaConfig.builder();
//华为云短信配置
HuaweiConfig.builder();
//unisms短信配置
UniConfig.builder();
//京东短信配置
JdCloudConfig.builder();
//腾讯短信配置
TencentConfig.builder();
//云片短信配置
YunpianConfig.builder();
//容联云短信配置
CloopenConfig.builder();
//亿美软通配置
EmayConfig.builder();
//天翼云配置
CtyunConfig.builder();

SupplierFactory 中有着同名的set方法,只需要对应设置即可

注意

SupplierFactory 的 set 方法在接收到对应的配置后会立即覆盖原有的配置,并刷新实现对象