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
,以加载后台接口。