package com.qianwen.core.sms.config; import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.profile.DefaultProfile; import com.qianwen.core.redis.cache.BladeRedis; import com.qianwen.core.sms.AliSmsTemplate; import com.qianwen.core.sms.props.SmsProperties; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @EnableConfigurationProperties({SmsProperties.class}) @Configuration(proxyBeanMethods = false) @ConditionalOnClass({IAcsClient.class}) @ConditionalOnProperty(value = {"sms.name"}, havingValue = "aliyun") public class AliSmsConfiguration { private final BladeRedis bladeRedis; public AliSmsConfiguration(final BladeRedis bladeRedis) { this.bladeRedis = bladeRedis; } @Bean public AliSmsTemplate aliSmsTemplate(SmsProperties smsProperties) { return new AliSmsTemplate(smsProperties, new DefaultAcsClient(DefaultProfile.getProfile(smsProperties.getRegionId(), smsProperties.getAccessKey(), smsProperties.getSecretKey())), this.bladeRedis); } }