标签:经验 temp webstorm 自己的 blog 使用方法 Java后端 权限认证 one
在当代大学生的日常生活中,社团是必不可少的一个部分。如果仅仅是通过纸质文档进行管理的话,不但需要耗费大量的人力和资源,也会给管理造成不便。为了提升社团组织者对社团管理的便利性,我们小组选择社团管理这一主题,开发一款便于社团管理的系统。
社团管理系统的操作角色分为游客、学生、管理员三种类型,集成了社团浏览、活动浏览、社团申请、活动创建、活动审批、入社申请审批、社团内部事务管理等功能模块,为社团管理者与学生提供一个方便的数字化管理平台。
参与组内讨论,根据学生、普通社员、社长、管理员4种角色来提出需求
两项简易墨刀原型
详见 设计图文档
全部用例图
仅参与确认
整个类图的绘制与类图说明
由于组内成员没有相关项目开发经验,如前端框架、路由、接口信息接受发送,后端框架、信息接受与发送。因此学习、试错花费大量时间。
查找资料,并最终选定的技术选型如下:
Java 编程语言选择
JWT 服务器生成Token令牌,客户端将其存储在RequstHeader中自动发送,便于用户认证
MD5 密码二次加密
Shiro 安全框架,用于角色及权限判断,并提供过滤器
Redis 利用redis自带的生命周期功能,做token缓存
Maven 模块化管理
Mongodb 尝试NoSql数据库
SpringBoot SOA服务核心框架、使用其封装的annotation,便于request请求接收与自定义异常信息
开发工具
Idea Java后端开发工具,自带SFTP上传服务器功能,共享后端代码
Mongodb Compass 连接Mongodb的GUI。缺点:自动断开连接后必须重启
编码前做的工作如下
前后端各两人。
我负责后端接口、权限认证,另一名后端组员搭建Spring和数据库环境、提供数据库调用、逻辑操作方法及数据库维护。由我进行与前端的沟通,并向另一名后端组员提出方法逻辑与参数,有种分层不干扰的感觉。
了解机制:Shiro整合JWT实现无状态鉴权机制(Token)
参考代码: shiro 框架的构建以及与 JWT 的整合
Java接口类汇总
前端 Request Payload 和 RequestBody 的数据如何获取?
Jedist 连接时 出现protected mode错误
@RestControllerAdvice 和@ExceptionHandler 不能处理Shiro Realm中抛出的异常AuthenticationException,在网上找不到可行的方法。。。
理想:
现实:
解决: 建立一个捕获/unauthorized 的Controller类
代码:
结果返回:
与前端组员测试所有接口,与后端另一位组员修复已知bug,非常重要且花时间的环节。
基本测试结束之后,将后端程序打包部署到服务器。
做的时候砍了很多一开始想到的东西,组内针对某些需求如何实现进行了许多争论。分析原因,是当初需求分析不够具体。
例如一开始想到有活动通知、社团通知,前端人员在编写页面时本打算在创建活动时一并发送该活动的创建通知,如果这样做考虑到活动需要审批,那么通知也需要设置状态,显然不合理,其实只要在活动申请通过后系统自动生成通知即可。
在项目进行中必然存在关键路径,其中某个人的延误(例如bug、技术难点、摸鱼等)会导致整个项目的停滞。但仔细一想,如果需求分析做的足够具体那其他人至少可以做好应接工作,当然也不能只埋头干自己的。
另外,社团管理作为我的第一个小组作业,让我受益良多,比如:
从我做后端接口的角度来看,盲目的堆砌代码对项目没有太大帮助,而与前端和数据库的沟通、对接口需要提前约定、及时解决对接问题、按时完成任务才是对团队最大的帮助。其次,团队气氛非常重要,假设某人一周只做了5分钟的工作量,不仅加重相同模块其他组员的负担,还影响团队氛围,汇报时尴尬的不行。
上啥课都发呆型选手。。。上课风格与理论知识没啥建议
需求分析很重要,但我们一开始写的东西完全像是介绍有什么功能,而不是具体如何实现,后来看了老师给的参考才恍然大悟。可能提前给出参考会更好
在大三之前基本没有需要合作的大作业,对于下一届计科,或许可以让他们在暑假短学期做一些预备。例如:
在原型检查阶段,经老师提醒目前市场APP开发经验的重要性。那么在公布大作业的时候可以顺带做一下说明,引起学生注意。
标签:经验 temp webstorm 自己的 blog 使用方法 Java后端 权限认证 one
原文地址:https://www.cnblogs.com/vium520/p/12013315.html