![](https://img-blog.csdnimg.cn/direct/c22497d693f44f1bb0054fb1edc19ed5.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
校园伙伴匹配系统
文章平均质量分 61
伙伴匹配系统的开发日常
诨号无敌鸭
纵有疾风起,人生不言弃
展开
-
伙伴匹配(后端)-- 前后端日期格式化
后端时间格式化在expireTime属性加上一个格式化注解,并给定格式。原创 2024-05-07 15:12:14 · 166 阅读 · 0 评论 -
伙伴匹配(后端)-- 后端代码优化
如何实现仅加入队伍和创建队伍的人能看到队伍操作按钮?(listTeam接口要能获取我加入的队伍状态)方案一:前端查询我加入了哪些队伍列表,然后判断每个队伍id是否在列表中(前端要多发一次请求)加入队伍: 仅非队伍创建人、且未加入队伍的人可见。退出队伍:创建人不可见,仅已加入队伍的人可见。方案二:在后端上做上述事情(选择此方案)加把锁(单机锁) - > 分布式锁。不登录就捕获异常就不用查了。给加入队伍业务增加分布式锁。更新队伍:仅创建人可见。解散队伍:仅创建人可见。原创 2024-05-07 15:07:11 · 253 阅读 · 0 评论 -
伙伴匹配(后端)-- 随机匹配功能
最小编辑距离:第一个字符串通过最少多少次操作(增删改)可以变成第二个字符串(扩展)带权重的匹配算法:余弦相似度匹配算法为什么用map存呢?原创 2024-05-06 13:55:02 · 539 阅读 · 0 评论 -
伙伴匹配(后端)-- 组队功能
在这里记录一下,自己第一次debug找出错误的经历,什么都不传应该是全部都能查出来的,但是却什么都没有查出来,之前一直不会看,这一个好好分析了一下,用快捷键一步一步往下走,发现到这里的时候status为null,还去数据库查询了,应该是查teamStatusEnum.getValue()才对,把status改为teamStatusEnum.getValue()就ok了。在model包新建vo包,并创建TeamUserVO(队伍和用户信息封装类),UserVO类(用户封装类),这两个类是返回给前端看。原创 2024-05-06 13:52:33 · 1088 阅读 · 0 评论 -
伙伴匹配(后端)-- 分布式锁
是Java中操作Redis的客户端,提供了大量的分布式数据集来简化对Redis的操作和使用,可以让开发者像使用本地集合一样使用Redis,完全感知不到Redis的存在。:先来的人先把数据改为自己的标识(服务器ip),后来的人发现标识已存在,就抢锁失败,继续等待,等前面人执行方法结束,把标识清空,其他的人继续抢锁。:mysql数据库(行级锁),(乐观锁),Redis存标识,Zookeeper。1.监听当前线程,默认过期时间是30秒,每10秒续期一次(续到30秒)怎么保证同一时间只有一个服务器能抢到锁?原创 2024-05-02 17:45:00 · 918 阅读 · 0 评论 -
伙伴匹配(后端)-- 主页性能优化(Redis实现缓存)
数据库太慢了!!!解决方案:预先把数据查出来,放到一个更快读取的地方,不用再查数据库了预加载缓存,定时更新缓存(定时任务)多个机器都要执行任务吗?(分布式锁,控制同一时间只有一台机器去执行定时任务,其他机器不用再重复执行了)原创 2024-05-02 15:00:00 · 8 阅读 · 0 评论 -
伙伴匹配(后端)-- 分页显示推荐用户
前端传来pageSize(每页多少条),pageNum(第几页),request。原创 2024-05-01 18:00:00 · 182 阅读 · 0 评论 -
伙伴匹配(后端)-- 批量导入数据
自己新建一个线程池,不使用默认jdk线程池,自定义线程池可以跑满线程(让二十个人都干活),默认线程池只能跑满cpu核数-1。要注意顺序无所谓,不要用到非并发类的集合(比如list,线程不安全,要转成线程安全的集合)很多人都干了两份活,二十个线程只有15个人干了活,有5个人干了两份活,剩下5个人啥也没干。可控性,幂等性,注意线上环境和测试环境是有区别的。cpu密集型:分配的核心线程数= cpu - 1。I/O密集型:分配的核心线程数可以大于cpu核数。直接插入->批量插入->并发插入。原创 2024-05-01 14:15:00 · 8 阅读 · 0 评论 -
伙伴匹配(后端)-- 个人信息修改
service参数,要修改的用户,当前登录用户1.校验参数是否为空2.是否有权限更新(仅管理员和自己可修改)3.触发更新。原创 2024-04-30 18:00:00 · 38 阅读 · 0 评论 -
伙伴匹配(后端)-- 分布式session登录改造
3.修改 spring-session 存储配置 spring.session.store-type。2.引入spring-session和redis的整合,使得自动将session存储到redis中。store-type: redis,表示从 redis 读写 session。为什么服务器a登录后,请求发送到服务器b,不认识该用户?重启项目后,就可以在多台服务器上实现用户信息共享功能了。复制原先启动类,原先没有启动类,点击上方➕添加启动类。结果请求b时,b没有用户信息,所以不存在。原创 2024-04-29 09:48:38 · 436 阅读 · 0 评论 -
伙伴匹配(后端)-- 根据标签搜索用户
并且数据库连接足够,内存空间足够,可以并发同时查询,谁先返回用谁。内存中查询出来的一个用户的所有标签是json字符串格式的数据,需要把它解析成集合。1.允许用户传入多个标签,多个标签都存在才搜索出来 (目前做的是这个)1.如果参数可以分析,根据用户的参数取选择查询方式,比如标签数。2.允许用户传入多个标签,有任何一个标签存在就能搜索出来。根据标签搜索用户业务逻辑(sql)(实现简单)2.在内存中判断是否包含要求的标签(灵活)反序列化:把json转为Java对象。什么是序列化反序列化?原创 2024-04-29 09:44:07 · 327 阅读 · 0 评论 -
伙伴匹配(后端)-- 后端代码阶段性优化
一点想法:因为其他地方没有用到BaseResponse的get或者set方法,就把@Data注解删去了,结果报错,刚开始以为是序列化的事情,但是跟这无关,是因为其他类访问了BaseResponse的private的属性,如果没有set和get方法,直接访问这些字段赋值会报错,所以要么加上@Data注解,要么把属性改为public。1.捕获代码中所有的异常,内部消化,集中处理,让前端得到更详细的业务报错/信息,给原本的异常类扩充了两个字段,并且提供了几个构造函数。可读性,不可变性,封装性。原创 2024-04-28 13:55:40 · 481 阅读 · 0 评论 -
伙伴匹配(后端)-- 查询,删除用户,用户注销接口开发
写接口的流程先做设计 代码实现 持续优化(复用代码,提取公共逻辑,/常量)原创 2024-04-28 13:53:07 · 445 阅读 · 0 评论 -
伙伴匹配(后端)-- 后端controller注册与登录接口开发
封装对象专门记录请求参数,要实现序列化接口,继承Serializabll。原创 2024-04-27 09:57:31 · 130 阅读 · 0 评论 -
伙伴匹配(后端)-- 用户登录
(现在做单机登录) 后面修改为redis单点登录。原创 2024-04-27 09:54:45 · 332 阅读 · 1 评论 -
伙伴匹配(后端)-- 用户注册功能
注意:对密码进行加密(密码千万不要直接以明文存储在数据库中)f7进入此方法 f9下一个断点 f8下一步。SringUtils简化开发。原创 2024-04-26 14:12:57 · 400 阅读 · 0 评论 -
伙伴匹配(后端)-- 自动生成代码插件
目的是为了将数据库字段与java对象建立连接,mybatisX插件,自动根据数据库生成domain实体对象,mapper(操作数据库的对象),mapper.xml(定义了mapper对象和数据库的关联,可以在里面自己写sql),service,serviceImpl。可以一键生成对象的所有set方法。快捷键alt+enter。原创 2024-04-26 14:09:42 · 668 阅读 · 2 评论 -
伙伴匹配(后端)-- 数据库表设计
在后端开发中,数据库表设计真的是非常重要的一环了,进入公司熟悉业务第一个要看的也是数据库的表,接下来就让我们看看本项目的数据库表有哪些吧(暂时)原创 2024-04-24 21:38:57 · 171 阅读 · 0 评论 -
伙伴匹配(后端)-- 前端初始化
好了,初始化流程已经过了一遍,剩下可以跳过了,直接拉取完整代码(前端队友提供),拉取别人代码就不需要初始化项目了,只需要安装依赖,引入相关插件就可以启动项目了。cmd切换到项目目录下初始化项目。原创 2024-04-24 11:06:58 · 313 阅读 · 0 评论 -
伙伴匹配(后端)-项目简介
帮助大家找到志同道合的伙伴,移动端h5网页。原创 2024-04-22 19:48:09 · 390 阅读 · 2 评论 -
伙伴匹配(后端)- 项目效果展示
最近想完善扩展一下之前写过的项目,本专栏会持续更新写项目的后端开发流程,遇到的bug及解决方案,以及扩展更新,本篇为目前项目进度。原创 2024-04-22 19:45:47 · 299 阅读 · 0 评论