Class SmsFactory


  • public abstract class SmsFactory
    extends Object
    SmsFactory

    构造工厂,用于获取一个厂商的短信实现对象 在调用对应厂商的短信发送方法前,请先确保你的配置已经实现,否则无法发送该厂商对应的短信,一般情况下厂商会回执因缺少的配置所造成的的异常,但组件 不会处理

    Author:
    :Wind 2023/4/8 15:55
    • Field Detail

      • BLENDS

        private static final Map<String,​SmsBlend> BLENDS

        框架维护的所有短信服务对象

        key: configId,短信服务对象的唯一标识

        value: 短信服务对象

    • Constructor Detail

      • SmsFactory

        private SmsFactory()
    • Method Detail

      • createSmsBlend

        public static void createSmsBlend​(SupplierConfig config)
        createSmsBlend

        创建各个厂商的实现类

        Parameters:
        config - 短信配置
      • createSmsBlend

        public static void createSmsBlend​(SmsReadConfig smsReadConfig,
                                          String configId)
        createSmsBlend

        通过配置读取接口创建某个短信实例

        该方法创建的短信实例将会交给框架进行托管,后续可以通过getSmsBlend获取

        该方法会直接调用接口实现

        Parameters:
        smsReadConfig - 读取额外配置接口
        configId - 配置ID
      • createSmsBlend

        public static void createSmsBlend​(SmsReadConfig smsReadConfig)
        createSmsBlend

        通过配置读取接口创建全部短信实例

        该方法创建的短信实例将会交给框架进行托管,后续可以通过getSmsBlend获取

        该方法会直接调用接口实现

        Parameters:
        smsReadConfig - 读取额外配置接口
      • createRestrictedSmsBlend

        @Deprecated
        public static void createRestrictedSmsBlend​(SupplierConfig config)
        Deprecated.
        createRestrictedSmsBlend

        创建一个指定厂商开启短信拦截后的实例,拦截的参数取决于配置参数

        Parameters:
        config - 短信配置
      • createRestrictedSmsBlend

        @Deprecated
        public static void createRestrictedSmsBlend​(SmsReadConfig smsReadConfig,
                                                    String configId)
        Deprecated.
        createRestrictedSmsBlend

        通过配置读取接口创建某个开启短信拦截后的短信实例

        该方法创建的短信实例将会交给框架进行托管,后续可以通过getSmsBlend获取

        该方法会直接调用接口实现

        Parameters:
        smsReadConfig - 读取额外配置接口
        configId - 配置ID
      • createRestrictedSmsBlend

        @Deprecated
        public static void createRestrictedSmsBlend​(SmsReadConfig smsReadConfig)
        Deprecated.
        createRestrictedSmsBlend

        通过配置读取接口创建全部开启短信拦截后的短信实例

        该方法创建的短信实例将会交给框架进行托管,后续可以通过getSmsBlend获取

        该方法会直接调用接口实现

        Parameters:
        smsReadConfig - 读取额外配置接口
      • renderWithProxy

        @Deprecated
        private static SmsBlend renderWithProxy​(SmsBlend sms)
        Deprecated.
        renderWithRestricted

        构建smsBlend对象的代理对象

      • getSmsBlend

        public static SmsBlend getSmsBlend()
        通过负载均衡服务获取短信服务对象
        Returns:
        返回短信服务列表
      • getSmsBlend

        public static SmsBlend getSmsBlend​(String configId)
        通过configId获取短信服务对象
        Parameters:
        configId - 唯一标识
        Returns:
        返回短信服务对象。如果未找到则返回null
      • getBySupplier

        public static SmsBlend getBySupplier​(String supplier)
        通过供应商标识获取单个短信服务对象

        当供应商有多个短信服务对象时无法保证获取顺序

        Parameters:
        supplier - 供应商标识
        Returns:
        返回短信服务对象。如果未找到则返回null
      • getListBySupplier

        public static List<SmsBlend> getListBySupplier​(String supplier)
        通过供应商标识获取短信服务对象列表
        Parameters:
        supplier - 供应商标识
        Returns:
        返回短信服务对象列表。如果未找到则返回空列表
      • getAll

        public static List<SmsBlend> getAll()
        获取全部短信服务对象
        Returns:
        短信服务对象列表
      • register

        public static void register​(SmsBlend smsBlend)
        注册短信服务对象
        Parameters:
        smsBlend - 短信服务对象
      • register

        public static void register​(SmsBlend smsBlend,
                                    Integer weight)
        注册短信服务对象
        Parameters:
        smsBlend - 短信服务对象
      • registerIfAbsent

        public static boolean registerIfAbsent​(SmsBlend smsBlend)
        以configId为标识,当短信服务对象不存在时,进行注册
        Parameters:
        smsBlend - 短信服务对象
        Returns:
        是否注册成功

        当对象不存在时,进行注册并返回true

        当对象已存在时,返回false

      • registerIfAbsent

        public static boolean registerIfAbsent​(SmsBlend smsBlend,
                                               Integer weight)
        registerIfAbsent

        以configId为标识,当短信服务对象不存在时,进行注册。并添加至系统的负载均衡器

        Parameters:
        smsBlend - 短信服务对象
        weight - 权重
        Returns:
        是否注册成功

        当对象不存在时,进行注册并返回true

        当对象已存在时,返回false

      • unregister

        public static boolean unregister​(String configId)
        注销短信服务对象

        与此同时会注销掉负载均衡器中已经存在的对象

        Parameters:
        configId - 标识
        Returns:
        是否注销成功

        当configId存在时,进行注销并返回true

        当configId不存在时,返回false

      • reload

        public static void reload​(String configId,
                                  SmsReadConfig smsReadConfig)
        reload

        重新读取并刷新缓存内短信实例

        Parameters:
        configId - 配置标识
        smsReadConfig - 配置接口实现对象
      • reloadAll

        public static void reloadAll​(SmsReadConfig smsReadConfig)
        reloadAll

        重新读取并刷新全部短信实例

        Parameters:
        smsReadConfig - 配置接口实现对象