要在Spring Boot中集成阿里云短信服务,你需要按以下步骤操作:
- 引入阿里云短信服务SDK依赖到你的
pom.xml
文件中。 - 配置阿里云短信服务的
AccessKeyId
和AccessKeySecret
。 - 创建短信发送的服务和控制器。
以下是一个简化的示例:
步骤1:添加依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>dysmsapi20170525</artifactId>
<version>2.0.11</version>
</dependency>
步骤2:配置AccessKey
在application.properties
或application.yml
中配置:
# 阿里云短信服务的AccessKeyId
aliyun.sms.accessKeyId=yourAccessKeyId
# 阿里云短信服务的AccessKeySecret
aliyun.sms.accessKeySecret=yourAccessKeySecret
步骤3:创建短信服务类
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@Service
public class SmsService {
@Value("${aliyun.sms.accessKeyId}")
private String accessKeyId;
@Value("${aliyun.sms.accessKeySecret}")
private String accessKeySecret;
public boolean sendSms(String phoneNumber, String signName, String templateCode, String templateParam) {
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
IAcsClient client = new DefaultAcsClient(profile);
SendSmsRequest request = new SendSmsRequest();
request.setPhoneNumbers(phoneNumber);
request.setSignName(signName);
request.setTemplateCode(templateCode);
request.setTemplateParam(templateParam);
try {
SendSmsResponse response = client.getAcsResponse(request);
return "OK".equals(response.getCode());
} catch (ClientException e) {
e.printStackTrace();
return false;
}
}
}
步骤4:创建控制器
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SmsController {
@Autowired
private SmsService smsService;
@GetMapping("/sendSms")
public String sendSms(String phoneNumber, String signName, String templateCode, String templateParam) {
boolean isSuccess = sms