Harry技術添加存儲(minio、aliyun oss)、短信sms(aliyun、模擬)、郵件發送等功能
基于SpringBoot3+Vue3前后端分離的Java快速開發框架
項目簡介:基于 JDK 17、Spring Boot 3、Spring Security 6、JWT、Redis、Mybatis-Plus、Knife4j等構建后端,基于Vue 3、Element-Plus 、TypeScript等構建前端的分離單體權限管理系統。
項目地址:
后端:
gitee: https://gitee.com/harry-tech/harry.git
gitcode: https://gitcode.com/harry-tech/harry.git
前端:
gitee: https://gitee.com/harry-tech/harry-vue.git
gitcode: https://gitcode.com/harry-tech/harry-vue.git
覺著有幫助,給個Star再走唄 ~~~~
公眾號搜“Harry技術”,關注我,帶你看不一樣的人間煙火!
端口修改
之前后端服務的啟動端口設置為9000
,而現在將其修改為9999
。為什么會做出這樣的修改呢?這主要是由于在進行minio整合工作的時候,發現后端原本使用的9000
端口與minio存儲服務的端口產生了沖突。在這種情況下,為了確保整個項目的順利運行(也方便大家在整合minio做出不必要的麻煩),經過權衡,只能做出調整,讓出原本使用的端口,將后端服務的啟動端口修改為9999
。
- 后端修改
server:port: 9999
- 前端修改
注意:最近總是有小伙伴在運行項目的時候報錯,首先,確保本地安裝了redis、mysql等,其次查看一下前端
.env.development
文件中 Mock 服務是否為false狀態,當設置為false
時,才會去加載后臺接口。# 是否啟用 Mock 服務 VITE_MOCK_DEV_SERVER = false
添加存儲(minio、aliyun oss)
有關minio的安裝,這里就不過多說了,可以參考《Windows下Minio的安裝以及基本使用》、《Spring Boot 3 整合 minio 實現文件存儲》這兩篇文章帶你入門。
minio依賴
<minio.version>8.5.10</minio.version><!-- MinIO 對象存儲 --><dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>${minio.version}</version></dependency>
阿里云OSS依賴
<aliyun.oss.version>3.17.4</aliyun.oss.version><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>${aliyun.oss.version}</version></dependency>
在項目啟動前,先選擇你需要的存儲服務器,比如你想使用minio
作為存儲,那么你在yml文件中進行相關的配置,將type
設置為minio
。
# 文件存儲配置
oss:# OSS 類型 (目前支持aliyun、minio)type: minio# MinIO 對象存儲服務minio:# 服務Endpointendpoint: http://localhost:9090# 訪問憑據access-key: eFbF9rSBtgfqiLGDcPDo# 憑據密鑰secret-key: Sfgc06T1S6zhzVTzCwIFhr6KUs7zqCwOwFkHHez4# 存儲桶名稱bucket-name: harry# (可選)自定義域名,如果配置了域名,生成的文件URL是域名格式,未配置則URL則是IP格式custom-domain:# 阿里云OSS對象存儲服務aliyun:# 服務Endpointendpoint: oss-cn-beijing.aliyuncs.com# 訪問憑據access-key-id: XXX# 憑據密鑰access-key-secret: XXX# 存儲桶名稱bucket-name: honghh
短信sms(aliyun、模擬)
這次更新里,我們接入了阿里云的短信服務。比如你在個人中心換個手機號,就得先拿到一個短信驗證碼。但在咱們本地測試的時候,老發真實短信也太費錢了。所以啊,我特意加了個模擬發送短信的功能,這樣在后臺就能直接打印出驗證碼來,你只需要輸入這個驗證碼就能完成驗證了。那么,我們應該如何開啟模擬功能呢?很簡單,只需要將sms.aliyun.enable
設置為false就可以了。
sms:aliyun:enable: false #如果enable為false時 則不發送短信accessKeyId: XXXaccessKeySecret: XXXregionId: cn-shanghaisignName: Harry技術templateCodes:# 注冊(預留)register: SMS_xxx# 登錄(預留)login: SMS_xxx# 修改密碼changePassword: SMS_xxx
@Slf4j
@Component
@ConditionalOnProperty(value = "sms.aliyun.enable", havingValue = "false")
public class FakeSmsStrategy implements SmsStrategy {@Overridepublic SendSmsResponse send(SmsParam smsParam) {log.info("FakeSmsStrategy smsParam:{}", JSONUtil.toJsonStr(smsParam));String str = "{\"bizId\":\"111111111\",\"code\":\"OK\",\"message\":\"并未真實發送\",\"requestId\":\"111111111\"}";return BeanUtil.copyProperties(JSONUtil.parseObj(str), SendSmsResponse.class);}
}
郵件發送
這次更新里,我們還引入了郵件發送,如果你沒有基礎,你可以去學習這篇文章進行入門《使用Java實現郵件發送功能,郵件發送API JavaMail》,配置也是很簡單的。
引入依賴
<!-- 郵件發送 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>
功能實現
/*** @author harry* @公眾號 Harry技術*/
public interface MailService {/*** 發送簡單文本郵件** @param to 收件人地址* @param subject 郵件主題* @param text 郵件內容*/void sendMail(String to, String subject, String text) ;/*** 發送帶附件的郵件** @param to 收件人地址* @param subject 郵件主題* @param text 郵件內容* @param filePath 附件路徑*/void sendMailWithAttachment(String to, String subject, String text, String filePath);
完善個人中心
修改文件內容
總結
本次更新主要包含以下內容:
- 端口修改:為避免與Minio存儲服務沖突,后端啟動端口從9000改為9999。
- 添加存儲支持:集成Minio和阿里云OSS對象存儲服務,詳細配置請參考相關文檔。
- 短信服務:接入阿里云短信服務,并增加模擬發送功能,方便本地測試。
- 郵件發送:引入郵件發送功能,支持簡單文本郵件和帶附件郵件。
- 完善個人中心:優化個人中心頁面,提升用戶體驗。
注意事項:
- 確保本地安裝Redis、MySQL等。
- 檢查前端
.env.development
文件中Mock服務是否設置為false
,以加載后臺接口。