spring Bean不在全量加载,而是按需加载

This commit is contained in:
wind 2023-09-01 16:18:31 +08:00
parent fc2003f8fe
commit 4ec15b8ad4
2 changed files with 17 additions and 1 deletions

View File

@ -11,6 +11,7 @@ import org.dromara.sms4j.starter.utils.SmsSpringUtil;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Primary;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;
@ -36,18 +37,21 @@ public class SmsAutowiredConfig {
/** 注入一个定时器*/ /** 注入一个定时器*/
@Bean @Bean
@Lazy
protected DelayedTime delayedTime(){ protected DelayedTime delayedTime(){
return BeanFactory.getDelayedTime(); return BeanFactory.getDelayedTime();
} }
/** 注入线程池*/ /** 注入线程池*/
@Bean("smsExecutor") @Bean("smsExecutor")
@Lazy
protected Executor taskExecutor(SmsConfig config){ protected Executor taskExecutor(SmsConfig config){
return BeanFactory.setExecutor(config); return BeanFactory.setExecutor(config);
} }
/** 注入一个配置文件读取工具*/ /** 注入一个配置文件读取工具*/
@Bean @Bean("smsConfigUtil")
@Lazy
protected ConfigUtil configUtil(Environment environment){ protected ConfigUtil configUtil(Environment environment){
return new ConfigUtil(environment); return new ConfigUtil(environment);
} }

View File

@ -13,61 +13,73 @@ 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.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
@Configuration @Configuration
public class SmsProviderFactoryConfig { public class SmsProviderFactoryConfig {
@Bean @Bean
@Lazy
public AlibabaFactory smsAlibabaFactory() { public AlibabaFactory smsAlibabaFactory() {
return AlibabaFactory.instance(); return AlibabaFactory.instance();
} }
@Bean @Bean
@Lazy
public CloopenFactory smsCloopenFactory() { public CloopenFactory smsCloopenFactory() {
return CloopenFactory.instance(); return CloopenFactory.instance();
} }
@Bean @Bean
@Lazy
public CtyunFactory smsCtyunFactory() { public CtyunFactory smsCtyunFactory() {
return CtyunFactory.instance(); return CtyunFactory.instance();
} }
@Bean @Bean
@Lazy
public EmayFactory smsEmayFactory() { public EmayFactory smsEmayFactory() {
return EmayFactory.instance(); return EmayFactory.instance();
} }
@Bean @Bean
@Lazy
public HuaweiFactory smsHuaweiFactory() { public HuaweiFactory smsHuaweiFactory() {
return HuaweiFactory.instance(); return HuaweiFactory.instance();
} }
@Bean @Bean
@Lazy
public JdCloudFactory smsJdCloudFactory() { public JdCloudFactory smsJdCloudFactory() {
return JdCloudFactory.instance(); return JdCloudFactory.instance();
} }
@Bean @Bean
@Lazy
public NeteaseFactory smsNeteaseFactory() { public NeteaseFactory smsNeteaseFactory() {
return NeteaseFactory.instance(); return NeteaseFactory.instance();
} }
@Bean @Bean
@Lazy
public TencentFactory smsTencentFactory() { public TencentFactory smsTencentFactory() {
return TencentFactory.instance(); return TencentFactory.instance();
} }
@Bean @Bean
@Lazy
public UniFactory smsUniFactory() { public UniFactory smsUniFactory() {
return UniFactory.instance(); return UniFactory.instance();
} }
@Bean @Bean
@Lazy
public YunPianFactory smsYunPianFactory() { public YunPianFactory smsYunPianFactory() {
return YunPianFactory.instance(); return YunPianFactory.instance();
} }
@Bean @Bean
@Lazy
public ZhutongFactory smsZhutongFactory() { public ZhutongFactory smsZhutongFactory() {
return ZhutongFactory.instance(); return ZhutongFactory.instance();
} }