diff --git a/pom.xml b/pom.xml
index 0d67b027..400c74ca 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,7 +55,7 @@
UTF-8
UTF-8
2.7.12
- 2.2.0
+ 2.5.4
3.17.0
1.3.3
5.8.20
diff --git a/sms4j-solon-plugin/src/main/java/org/dromara/sms4j/solon/XPluginImpl.java b/sms4j-solon-plugin/src/main/java/org/dromara/sms4j/solon/XPluginImpl.java
index 9c440a51..fea6bb21 100644
--- a/sms4j-solon-plugin/src/main/java/org/dromara/sms4j/solon/XPluginImpl.java
+++ b/sms4j-solon-plugin/src/main/java/org/dromara/sms4j/solon/XPluginImpl.java
@@ -1,7 +1,8 @@
package org.dromara.sms4j.solon;
import org.dromara.sms4j.solon.config.SmsAutowiredConfig;
-import org.noear.solon.core.AopContext;
+import org.dromara.sms4j.solon.config.SupplierConfig;
+import org.noear.solon.core.AppContext;
import org.noear.solon.core.Plugin;
/**
@@ -9,8 +10,8 @@ import org.noear.solon.core.Plugin;
*/
public class XPluginImpl implements Plugin {
@Override
- public void start(AopContext context) {
+ public void start(AppContext context) {
context.beanMake(SmsAutowiredConfig.class);
- SmsAutowiredConfig.aopContext = context;
+ context.beanMake(SupplierConfig.class);
}
}
diff --git a/sms4j-solon-plugin/src/main/java/org/dromara/sms4j/solon/aop/SolonRestrictedProcess.java b/sms4j-solon-plugin/src/main/java/org/dromara/sms4j/solon/aop/SolonRestrictedProcess.java
index e95b69aa..3c36eee4 100644
--- a/sms4j-solon-plugin/src/main/java/org/dromara/sms4j/solon/aop/SolonRestrictedProcess.java
+++ b/sms4j-solon-plugin/src/main/java/org/dromara/sms4j/solon/aop/SolonRestrictedProcess.java
@@ -7,7 +7,7 @@ import org.dromara.sms4j.comm.exception.SmsBlendException;
import org.dromara.sms4j.comm.utils.SmsUtils;
import org.dromara.sms4j.provider.config.SmsConfig;
import org.dromara.sms4j.provider.factory.BeanFactory;
-import org.noear.solon.core.AopContext;
+import org.noear.solon.core.AppContext;
@Slf4j
public class SolonRestrictedProcess implements RestrictedProcess {
@@ -17,7 +17,7 @@ public class SolonRestrictedProcess implements RestrictedProcess {
private static final String REDIS_KEY = "sms:restricted:";
private SmsDao smsDao;
- public SolonRestrictedProcess(AopContext context) {
+ public SolonRestrictedProcess(AppContext context) {
context.getBeanAsync(SmsDao.class, bean -> smsDao = bean);
}
@@ -26,6 +26,7 @@ public class SolonRestrictedProcess implements RestrictedProcess {
SmsConfig config = BeanFactory.getSmsConfig();
Integer accountMax = config.getAccountMax(); // 每日最大发送量
Integer minuteMax = config.getMinuteMax(); // 每分钟最大发送量
+
if (SmsUtils.isNotEmpty(accountMax)) { // 是否配置了每日限制
Integer i = (Integer) smsDao.get(REDIS_KEY + phone + "max");
if (SmsUtils.isEmpty(i)) {
@@ -50,6 +51,7 @@ public class SolonRestrictedProcess implements RestrictedProcess {
smsDao.set(REDIS_KEY + phone, 1, minTimer / 1000);
}
}
+
return null;
}
}
diff --git a/sms4j-solon-plugin/src/main/java/org/dromara/sms4j/solon/config/SmsAutowiredConfig.java b/sms4j-solon-plugin/src/main/java/org/dromara/sms4j/solon/config/SmsAutowiredConfig.java
index 508c29bf..fdd435f6 100644
--- a/sms4j-solon-plugin/src/main/java/org/dromara/sms4j/solon/config/SmsAutowiredConfig.java
+++ b/sms4j-solon-plugin/src/main/java/org/dromara/sms4j/solon/config/SmsAutowiredConfig.java
@@ -8,14 +8,10 @@ import org.dromara.sms4j.provider.config.SmsBanner;
import org.dromara.sms4j.provider.config.SmsConfig;
import org.dromara.sms4j.provider.factory.BeanFactory;
import org.dromara.sms4j.solon.aop.SolonRestrictedProcess;
-import org.noear.solon.Solon;
-import org.noear.solon.Utils;
import org.noear.solon.annotation.Bean;
-import org.noear.solon.annotation.Condition;
import org.noear.solon.annotation.Configuration;
import org.noear.solon.annotation.Inject;
-import org.noear.solon.core.AopContext;
-import org.noear.solon.core.Props;
+import org.noear.solon.core.AppContext;
import org.noear.solon.core.bean.LifecycleBean;
import java.util.concurrent.Executor;
@@ -24,12 +20,12 @@ import java.util.concurrent.Executor;
@Configuration
public class SmsAutowiredConfig implements LifecycleBean {
- public static AopContext aopContext;
+ @Inject
+ AppContext context;
private T injectObj(String prefix, T obj) {
//@Inject 只支持在字段、参数、类型上注入
- Props props = Solon.cfg().getProp(prefix);
- Utils.injectProperties(obj, props);
+ context.cfg().getProp(prefix).bindTo(obj);
return obj;
}
@@ -55,27 +51,12 @@ public class SmsAutowiredConfig implements LifecycleBean {
}
- /**
- * smsConfig参数意义为确保注入时smsConfig已经存在
- */
- @Bean
- @Condition(onProperty = "${sms.config-type}=config_file")
- public SupplierConfig supplierConfig(@Inject SmsConfig smsConfig) {
- return new SupplierConfig();
- }
-
- // @Bean
- // @Condition(onProperty = "${sms.config-type}=sql_config")
- // public SupplierSqlConfig supplierSqlConfig(@Inject SmsSqlConfig smsSqlConfig) {
- // return new SupplierSqlConfig();
- // }
-
//是在 solon 容器扫描完成之后执行的
@Override
public void start() {
/* 如果配置中启用了redis,则注入redis工具*/
if (BeanFactory.getSmsConfig().getRedisCache()) {
- SmsInvocationHandler.setRestrictedProcess(new SolonRestrictedProcess(aopContext));
+ SmsInvocationHandler.setRestrictedProcess(new SolonRestrictedProcess(context));
log.debug("The redis cache is enabled for sms4j");
}
diff --git a/sms4j-solon-plugin/src/main/java/org/dromara/sms4j/solon/config/SupplierConfig.java b/sms4j-solon-plugin/src/main/java/org/dromara/sms4j/solon/config/SupplierConfig.java
index 0379e2d2..33d6e24c 100644
--- a/sms4j-solon-plugin/src/main/java/org/dromara/sms4j/solon/config/SupplierConfig.java
+++ b/sms4j-solon-plugin/src/main/java/org/dromara/sms4j/solon/config/SupplierConfig.java
@@ -9,18 +9,24 @@ import org.dromara.sms4j.jdcloud.config.JdCloudConfig;
import org.dromara.sms4j.tencent.config.TencentConfig;
import org.dromara.sms4j.unisms.config.UniConfig;
import org.dromara.sms4j.yunpian.config.YunpianConfig;
-import org.noear.solon.Solon;
-import org.noear.solon.Utils;
import org.noear.solon.annotation.Bean;
+import org.noear.solon.annotation.Condition;
import org.noear.solon.annotation.Configuration;
-import org.noear.solon.core.Props;
+import org.noear.solon.annotation.Inject;
+import org.noear.solon.core.AppContext;
+/**
+ * smsConfig参数意义为确保注入时smsConfig已经存在
+ */
+@Condition(onProperty = "${sms.configType}=config_file")
@Configuration
public class SupplierConfig {
+ @Inject
+ AppContext context;
+
private T injectObj(String prefix, T obj) {
//@Inject 只支持在字段、参数、类型上注入
- Props props = Solon.cfg().getProp(prefix);
- Utils.injectProperties(obj, props);
+ context.cfg().getProp(prefix).bindTo(obj);
return obj;
}