package com.qianwen.core.sms.config;
|
|
import com.yunpian.sdk.YunpianClient;
|
import com.qianwen.core.redis.cache.BladeRedis;
|
import com.qianwen.core.sms.YunpianSmsTemplate;
|
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({YunpianClient.class})
|
@ConditionalOnProperty(value = {"sms.name"}, havingValue = "yunpian")
|
|
public class YunpianSmsConfiguration {
|
private final BladeRedis bladeRedis;
|
|
public YunpianSmsConfiguration(final BladeRedis bladeRedis) {
|
this.bladeRedis = bladeRedis;
|
}
|
|
@Bean
|
public YunpianSmsTemplate yunpianSmsTemplate(SmsProperties smsProperties) {
|
YunpianClient client = new YunpianClient(smsProperties.getAccessKey()).init();
|
return new YunpianSmsTemplate(smsProperties, client, this.bladeRedis);
|
}
|
}
|