diff --git a/pom.xml b/pom.xml index 2db6d522..0d67b027 100644 --- a/pom.xml +++ b/pom.xml @@ -50,7 +50,7 @@ - 3.0.0 + 3.0.0-SNAPSHOT UTF-8 UTF-8 diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/tencent/service/TencentSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/tencent/service/TencentSmsImpl.java index 7182b1d1..eb0c3479 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/tencent/service/TencentSmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/tencent/service/TencentSmsImpl.java @@ -2,7 +2,6 @@ package org.dromara.sms4j.tencent.service; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; -import com.jdcloud.sdk.utils.StringUtils; import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.comm.constant.Constant; @@ -119,7 +118,7 @@ public class TencentSmsImpl extends AbstractSmsBlend { SmsResponse smsResponse = new SmsResponse(); JSONObject response = resJson.getJSONObject("Response"); String error = response.getStr("Error"); - smsResponse.setSuccess(StringUtils.isBlank(error)); + smsResponse.setSuccess(StrUtil.isBlank(error)); smsResponse.setData(resJson); smsResponse.setConfigId(getConfigId()); return smsResponse; diff --git a/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SmsBlendsInitializer.java b/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SmsBlendsInitializer.java index 09549280..285a0a17 100644 --- a/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SmsBlendsInitializer.java +++ b/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SmsBlendsInitializer.java @@ -1,15 +1,14 @@ package org.dromara.sms4j.starter.config; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; -import lombok.RequiredArgsConstructor; +import lombok.AllArgsConstructor; +import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.aliyun.config.AlibabaFactory; import org.dromara.sms4j.api.SmsBlend; -import org.dromara.sms4j.api.dao.SmsDao; -import org.dromara.sms4j.api.dao.SmsDaoDefaultImpl; -import org.dromara.sms4j.api.proxy.RestrictedProcess; import org.dromara.sms4j.api.universal.SupplierConfig; import org.dromara.sms4j.cloopen.config.CloopenFactory; import org.dromara.sms4j.comm.constant.Constant; @@ -21,6 +20,7 @@ import org.dromara.sms4j.emay.config.EmayFactory; import org.dromara.sms4j.huawei.config.HuaweiFactory; import org.dromara.sms4j.jdcloud.config.JdCloudFactory; import org.dromara.sms4j.netease.config.NeteaseFactory; +import org.dromara.sms4j.provider.config.BaseConfig; import org.dromara.sms4j.provider.config.SmsConfig; import org.dromara.sms4j.provider.factory.BaseProviderFactory; import org.dromara.sms4j.provider.factory.ProviderFactoryHolder; @@ -29,18 +29,18 @@ import org.dromara.sms4j.tencent.config.TencentFactory; import org.dromara.sms4j.unisms.config.UniFactory; import org.dromara.sms4j.yunpian.config.YunPianFactory; import org.dromara.sms4j.zhutong.config.ZhutongFactory; -import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; +import java.util.ArrayList; import java.util.List; import java.util.Map; -@Component -@RequiredArgsConstructor +@Data @Slf4j +@AllArgsConstructor public class SmsBlendsInitializer { - private final List> factoryList; + private List> factoryList; private final SmsConfig smsConfig; private final Map> blends; @@ -93,4 +93,27 @@ public class SmsBlendsInitializer { ProviderFactoryHolder.registerFactory(ZhutongFactory.instance()); } + /** + * 将Map中所有key的分隔符转换为新的分隔符 + * @param map map对象 + * @param seperator 旧分隔符 + * @param newSeperator 新分隔符 + */ + public static void replaceKeysSeperator(Map map, String seperator, String newSeperator) { + if(CollUtil.isEmpty(map)) { + return; + } + List keySet = new ArrayList<>(map.keySet()); + for(String key : keySet) { + if(StrUtil.isEmpty(key) || !key.contains(seperator)) { + continue; + } +// String value = String.valueOf(map.get(key)); + String newKey = key.replaceAll(seperator, newSeperator); + newKey = StrUtil.toCamelCase(newKey); + map.putIfAbsent(newKey, map.get(key)); + map.remove(key); + } + } + } diff --git a/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SmsMainConfig.java b/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SmsMainConfig.java index 6ca51354..286ac2c1 100644 --- a/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SmsMainConfig.java +++ b/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SmsMainConfig.java @@ -4,9 +4,8 @@ import lombok.Data; import org.dromara.sms4j.starter.utils.SmsSpringUtil; import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -@Configuration + @Data public class SmsMainConfig { diff --git a/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SupplierConfig.java b/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SupplierConfig.java index 6fe73585..5c05a6c4 100644 --- a/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SupplierConfig.java +++ b/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SupplierConfig.java @@ -1,18 +1,31 @@ package org.dromara.sms4j.starter.config; +import org.dromara.sms4j.api.SmsBlend; +import org.dromara.sms4j.provider.config.BaseConfig; +import org.dromara.sms4j.provider.config.SmsConfig; +import org.dromara.sms4j.provider.factory.BaseProviderFactory; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; public class SupplierConfig { - /** smsConfig参数意义为确保注入时smsConfig已经存在*/ + /** 注入配置*/ @Bean @ConfigurationProperties(prefix = "sms.blends") protected Map> blends(){ return new LinkedHashMap<>(); } + + @Bean + protected SmsBlendsInitializer smsBlendsInitializer(List>factoryList, + SmsConfig smsConfig, + Map> blends){ + return new SmsBlendsInitializer(factoryList,smsConfig,blends); + } + } diff --git a/sms4j-spring-boot-starter/src/main/resources/META-INF/spring.factories b/sms4j-spring-boot-starter/src/main/resources/META-INF/spring.factories index 6fef8cb6..4965c762 100644 --- a/sms4j-spring-boot-starter/src/main/resources/META-INF/spring.factories +++ b/sms4j-spring-boot-starter/src/main/resources/META-INF/spring.factories @@ -1,5 +1,4 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ org.dromara.sms4j.starter.config.SmsMainConfig,\ - org.dromara.sms4j.starter.config.SmsAutowiredConfig,\ org.dromara.sms4j.starter.config.SupplierConfig,\ org.dromara.sms4j.provider.config.SmsConfig diff --git a/sms4j-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/sms4j-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 0b07c684..d133aea6 100644 --- a/sms4j-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/sms4j-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,4 +1,3 @@ org.dromara.sms4j.starter.config.SmsMainConfig -org.dromara.sms4j.starter.config.SmsAutowiredConfig org.dromara.sms4j.starter.config.SupplierConfig org.dromara.sms4j.provider.config.SmsConfig \ No newline at end of file