修改SpringBoot初始化的执行方式

This commit is contained in:
heng 2023-09-05 21:56:13 +08:00
parent 8235c34a7d
commit c776fcdc64
2 changed files with 8 additions and 33 deletions

View File

@ -63,33 +63,8 @@ public class SmsAutowiredConfig {
return new SupplierConfig(); return new SupplierConfig();
} }
// @Bean
// @ConditionalOnProperty(prefix = "sms", name = "config-type", havingValue = "sql_config")
// protected SupplierSqlConfig supplierSqlConfig(SmsSqlConfig smsSqlConfig) throws SQLException {
// DataSource bean = SmsSpringUtil.getBean(DataSource.class);
// if (!Objects.isNull(bean)){
// BeanFactory.getJDBCTool().setConnection(bean.getConnection());
// }
// return new SupplierSqlConfig();
// }
@PostConstruct @PostConstruct
void init(){ void init() {
// /* 如果配置中启用了redis则注入redis工具*/
// if (BeanFactory.getSmsConfig().getRedisCache()){
// //如果用户没有实现RedisUtil接口则注入默认的实现
// if (!SmsSpringUtil.interfaceExist(SmsRedisUtil.class)){
// smsSpringUtil.createBean(SmsRedisUtils.class);
// }
// SmsInvocationHandler.setRestrictedProcess(new RestrictedProcessImpl());
// log.debug("The redis cache is enabled for sms4j");
// }
// // 将spring中存在的所有配置设置到配置工厂并添加至负载均衡器
// Map<String, org.dromara.sms4j.api.universal.SupplierConfig> beansOfType = SmsSpringUtil.getBeansOfType(org.dromara.sms4j.api.universal.SupplierConfig.class);
// for (org.dromara.sms4j.api.universal.SupplierConfig s : beansOfType.values()) {
// SupplierFactory.setSupplierConfig(s);
// }
//打印banner //打印banner
if (BeanFactory.getSmsConfig().getIsPrint()){ if (BeanFactory.getSmsConfig().getIsPrint()){
SmsBanner.PrintBanner(Constant.VERSION); SmsBanner.PrintBanner(Constant.VERSION);

View File

@ -7,9 +7,6 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.aliyun.config.AlibabaFactory; import org.dromara.sms4j.aliyun.config.AlibabaFactory;
import org.dromara.sms4j.api.SmsBlend; 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.api.universal.SupplierConfig;
import org.dromara.sms4j.cloopen.config.CloopenFactory; import org.dromara.sms4j.cloopen.config.CloopenFactory;
import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.Constant;
@ -29,24 +26,27 @@ import org.dromara.sms4j.tencent.config.TencentFactory;
import org.dromara.sms4j.unisms.config.UniFactory; import org.dromara.sms4j.unisms.config.UniFactory;
import org.dromara.sms4j.yunpian.config.YunPianFactory; import org.dromara.sms4j.yunpian.config.YunPianFactory;
import org.dromara.sms4j.zhutong.config.ZhutongFactory; import org.dromara.sms4j.zhutong.config.ZhutongFactory;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
public class SmsBlendsInitializer { public class SmsBlendsInitializer implements ApplicationListener<ContextRefreshedEvent> {
private final List<BaseProviderFactory<? extends SmsBlend, ? extends SupplierConfig>> factoryList; private final List<BaseProviderFactory<? extends SmsBlend, ? extends SupplierConfig>> factoryList;
private final SmsConfig smsConfig; private final SmsConfig smsConfig;
private final Map<String, Map<String, Object>> blends; private final Map<String, Map<String, Object>> blends;
@PostConstruct public void onApplicationEvent(ContextRefreshedEvent event) {
public void initBlends() { if (event.getApplicationContext().getParent() != null) {
return;
}
this.registerDefaultFactory(); this.registerDefaultFactory();
// 注册短信对象工厂 // 注册短信对象工厂
ProviderFactoryHolder.registerFactory(factoryList); ProviderFactoryHolder.registerFactory(factoryList);