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
前端:
觉着有帮助,给个Star再走呗 ~~~~
公众号搜“Harry技术”,关注我,带你看不一样的人间烟火!
端口修改
之前后端服务的启动端口设置为9000
,而现在将其修改为9999
。为什么会做出这样的修改呢?这主要是由于在进行minio整合工作的时候,发现后端原本使用的9000
端口与minio存储服务的端口产生了冲突。在这种情况下,为了确保整个项目的顺利运行(也方便大家在整合minio做出不必要的麻烦),经过权衡,只能做出调整,让出原本使用的端口,将后端服务的启动端口修改为9999
。
- 后端修改
server port9999
- 前端修改
注意:最近总是有小伙伴在运行项目的时候报错,首先,确保本地安装了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.10minio.version> <dependency> <groupId>io.miniogroupId> <artifactId>minioartifactId> <version>${minio.version}version> dependency>
阿里云OSS依赖
<aliyun.oss.version>3.17.4aliyun.oss.version> <dependency> <groupId>com.aliyun.ossgroupId> <artifactId>aliyun-sdk-ossartifactId> <version>${aliyun.oss.version}version> dependency>
在项目启动前,先选择你需要的存储服务器,比如你想使用minio
作为存储,那么你在yml文件中进行相关的配置,将type
设置为minio
。
# 文件存储配置 oss # OSS 类型 (目前支持aliyun、minio) type minio # MinIO 对象存储服务 minio # 服务Endpoint endpoint http //localhost9090 # 访问凭据 access-key eFbF9rSBtgfqiLGDcPDo # 凭据密钥 secret-key Sfgc06T1S6zhzVTzCwIFhr6KUs7zqCwOwFkHHez4 # 存储桶名称 bucket-name harry # (可选)自定义域名,如果配置了域名,生成的文件URL是域名格式,未配置则URL则是IP格式 custom-domain # 阿里云OSS对象存储服务 aliyun # 服务Endpoint endpoint 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 XXX accessKeySecret XXX regionId cn-shanghai signName Harry技术 templateCodes # 注册(预留) register SMS_xxx # 登录(预留) login SMS_xxx # 修改密码 changePassword SMS_xxx
value = "sms.aliyun.enable", havingValue = "false") (public class FakeSmsStrategy implements SmsStrategy { public 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.bootgroupId> <artifactId>spring-boot-starter-mailartifactId> 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
,以加载后台接口。