🍋系统介绍
一.技术简介
此聊天软件系统是基于SpringBoot+MybatisPlus+uniapp+uview2+stomp等更多优秀组件及前沿技术开发,注释丰富,代码简洁,开箱即用,兼容H5+小程序+APP,及其适合入门学习
1.前端技术栈
插件 | 版本 | 用途 |
---|---|---|
uview-ui | ^2.0.31 | 多平台快速开发的UI框架 |
uni-simple-router | ^2.0.7 | 专为uniapp打造的路由器 |
moment | ^2.29.4 | js工具库 |
mescroll-uni | ^1.3.7 | 上拉加载下拉刷新插件 |
@uni-ui/code-ui | ^1.4.8 | 二维码生成工具 |
2.后端技术栈
插件 | 版本 | 用途 |
---|---|---|
jdk | 1.8 | java环境 |
lombok | 1.18.16 | 代码简化插件 |
maven | 3.6.3 | 包管理工具 |
druid | 1.1.24 | JDBC组件 |
hutool | 5.7.20 | Java工具类库 |
mybatis-plus | 3.4.1 | 基于 MyBatis 增强工具 |
pinyin4j | 2.5.1 | 拼音组件库 |
mysql | 8.0 / 5.7 | 数据库 |
二.主要功能
1.登录注册模块
2.消息模块
3.好友模块
4.群组模块
5.个人中心模块
三.文章目录
📘文章精华
1.引言
1.1 研究背景
在数字化时代,人与人之间的沟通方式经历了前所未有的变革。从传统的书信、电话沟通,到如今互联网时代的即时通讯应用,沟通的便捷性和实时性得到了质的飞跃。即时通讯软件已经成为人们日常生活中不可或缺的一部分,无论是工作协同、社交互动,还是远程教育和电子商务等领域,都扮演着至关重要的角色。
然而,市面上虽已存在诸多成熟的即时通讯工具,但大多数商业解决方案往往封闭源码,高度定制化服务成本高昂,对于开发者而言,缺乏透明度和灵活性,且难以满足个性化需求或进行二次开发学习。此外,随着用户对隐私安全的日益重视,自主可控的通讯平台显得尤为重要。
鉴于此,基于SpringBoot的聊天工具应运而生,它以开源的方式,结合SpringBoot、uniapp等现代技术框架,旨在提供一个既易于学习又具备完整功能的即时通讯平台。本项目不仅关注技术实现的先进性和实用性,还强调用户体验和数据安全,力图构建一个既可作为实战学习样本,又能直接服务于实际应用场景的通讯软件。
2.系统相关技术
2.1 SpringBoot
Spring Boot 是一种简化新 Spring 应用程序初始设置的框架,它让开发者能够快速创建独立运行的应用程序,而无需复杂的初始配置。通过自动配置功能,Spring Boot 能够根据已添加的依赖自动设置应用程序的许多常见组件,从而减少了手动配置的需求。此外,Spring Boot 提供了一系列“启动器”依赖项,这些依赖项包含了预定义的依赖关系集合,可以帮助开发者更轻松地管理项目的依赖关系,避免版本冲突。
3.系统需求分析
3.1 功能性需求分析
3.1.1 登录注册
系统需提供用户注册新账号的功能,包括输入手机号、设置密码及验证,同时支持已有用户通过手机号和密码登录。用户需要在注册页面输入有效的手机号。注册逻辑中系统需要验证手机号格式是否正确,并检查手机号是否已被注册。用户需要设置一个强密码,系统应提供密码强度指示器,并要求密码包含大小写字母、数字和特殊字符。用户提交所有必要信息后,系统验证输入项的正确性。若信息正确,系统创建新用户账户并将用户信息加密存储在数据库中。登录逻辑中用户输入注册时使用的手机号,系统验证手机号和密码是否匹配。验证成功后,生成会话或令牌,并重定向用户到首页。
4.系统总体设计
4.1 系统总体设计
本系统旨在构建一个功能全面且安全的聊天通讯软件,支持用户注册、登录、消息发送、好友管理、群组聊天和个人中心等功能。系统采用了先进的技术栈和架构设计,确保了高效、安全和易用性。
在技术选型方面,系统选择了Spring Boot作为后端框架,Spring Security结合JWT令牌进行身份验证和授权,MySQL作为主要数据库存储用户信息和其他数据。消息传输采用WebSocket或STOMP协议,以实现消息的实时传输。数据库操作使用MyBatisPlus,文件存储则采用阿里云OSS,邮件服务通过SMTP实现。
在架构设计上,系统采用了前后端分离的设计模式,前端负责用户界面展示,后端负责业务逻辑处理。前后端之间的数据交换通过RESTful API进行,确保了系统的灵活性和可维护性。此外,系统还采用了微服务架构,将各个功能模块拆分为独立的服务,便于管理和扩展。
表4-1 系统总体结构图
4.2 模块详细设计
系统总流程图如图4-2所示。
图4-2 项目总流程图
4.2.1 用户模块设计
用户模块流程图如图4-3所示。
图4-3 用户模块流程图
设计说明:确定需求基本功能包括注册新用户、用户登录功能。用户开始访问时,如果当前用户没有账号,则需要创建账号,需要录入账号及密码、确认密码,若通过验证,创建用户后,反馈用户正常创建成功,失败则提示如账号已存在等错误信息,告知用户重新注册。如果当前用户存在账号,则可根据输入的账号名密码进行登陆,若验证无效,则返回错误信息提示;如果数据有效,则身份验证通过,跳转到首页。
5.系统实现
5.1 登录注册实现
用户可自主注册,并通过用户名密码进行登录,如忘记密码则可通过邮箱找回密码,但需要在配置文件中配置邮箱相关内容。登录注册界面如图5-1所示。
图5-1 登录注册页面
主要代码:
<script>
export default {
data() {
let _this = this
return {
title: 'xien.ai',
model: {
user: {
username: '',
password: '',
},
},
rules: {
'user.username': [{
required: true,
Message: ’请输入手机号’,
trigger: ['change', 'blur'],
},
{
validator: (rule, value, callback) => {
return uni.$u.test.mobile(value);
},
Message:’手机号码不正确’,
trigger: ['blur'],
}
],
'user.password': [{
type: 'string',
min: 6,
max: 16,
required: true,
Message: ’请输入6-16位密码’,
trigger: ['blur']
}],
'user.passwordVerify': [{
type: 'string',
min: 6,
max: 16,
required: true,
Message: ’请输入6-16位确认密码’,
trigger: ['blur']
},
{
validator: (rule, value, callback) => {
return value === _this.model.user.password;
},
message: ’两次密码不一致’,
trigger: ['blur'],
}]
}
}
},
onLoad() {
},
methods: {
// 注册提交
submit(){
this.$refs.registerForm.validate().then(res => {
let param = this.model.user
this.$api.register(param).then(res=>{
if (res.success) {
uni.$u.toast(res.message || "注册成功")
setTimeout(()=>{
uni.reLaunch({
url: '/pages/login/index'
});
},1000)
}
})
})
},
// 已有账号
hasAccount(){
uni.reLaunch({
url: '/pages/login/index'
});
}
}
}
</script>
@Api(tags = “注册控制器”)
@RestController
@RequestMapping("/register")
public class RegisterController {
@Resource
private UserService userService;
@ApiOperation(value = “用户注册”, notes = “用户自主注册”)
@PostMapping
public ResponseData register(@RequestBody @Valid RegisterVo registerVo) {
// 校验两次密码是否一致
if (!registerVo.getPassword().equals(registerVo.getPasswordVerify())) {
throw new ServiceException(ServiceErrorEnum.CONFIRMATION_PASSWORD_ERROR);
}
userService.register(registerVo);
return ResponseData.success();
}
}
🍈猜你想问
如何与狗哥联系进行探讨呢?
1.关注公众号【JavaDog程序狗】
公众号回复【入群】或者【加入】,便可成为【程序员学习交流摸鱼群】的一员,问题随便问,牛逼随便吹,目前群内已有超过300+个小伙伴啦!!!
2.踩踩狗哥博客
里面有狗哥的私密联系方式呦 😘
大家可以在里面留言,随意发挥,有问必答
🍯猜你喜欢
文章推荐
【实操】Spring Cloud Alibaba AI,阿里AI这不得玩一下(含前后端源码)