摘要:这是第一篇博客。技术内容很少。看法态度比较多。
- 文章目录
- 废话
- 项目前身
- 项目功能(模块)
- 实体类设计(数据库)
- 所谓RESTful风格
- 返回结果
- 总结
<!--这是废话的部分-->
给自己立下一个一周一个博客的目标!
说起这个博客,每次看到别人技术大牛或者和我一样的菜鸟分享博客的时候,就有种冲动想要写博客。
不只是对自己学习知识的梳理,也是一种记录,所以申请了一个账号学习记录2019,名字和目的一样。还有一个账号申请挺多天的,但是一直没有去申请开通博客。
说起Springboot,是我的大学班主任暨离散老师暨物联网操作系统老师,有个芬兰的项目。说是芬兰的项目,其实就是一个芬兰大学要做消费者行为调查的实验,然后就项目里面的一个成员刚好是国内的一个大学的老师,认识我的老师,所以就搭上线了。
项目极其简单,对于几个月前的我是一个很具有挑战性的东西。后来慢慢的接触了这个项目,所以就开始接触Springboot,我的学习进度不快,没有很系统的学习。最近才去图书馆借了一本spring实战和一本springmvc,开始接触spring这个框架。
我承认,我很多时候都是囫囵吞枣并没有深刻理解。所以有时候对于一个初学者来说,你说什么控制器,什么框架,什么实体类还是有点难以理解,可能是我比较没有很好的思维能力吧。
好了,回到标题,这是一个用在大学的综合测评系统。因为大学担任了助理三年,所以干了很多关于这方面的活(很繁琐低效率),所以想借这个机会开发一套以后可以用的系统。
<!--这是正题-->
<!--项目前身-->
看到这个界面,我不知道你们会怎么想,反正我是觉得很丑的。
因为这是没有规划,没有前期设计,想到什么做什么,会做什么就写什么。
很明显,这是一个,没有设计感,没有规划的失败的项目。
很多地方代码都是频繁改动,没有一点逻辑,做了很多重复性的东西。
这也就是我想做第二版的原因。
给自己一个整体项目的过程,从设计开始。
<!--项目模块-->
模块:登陆模块,个人信息模块,学生管理模块,加分模块,申诉模块,批量添加加分模块,审核模块,申诉管理模块,留言模块,公示模块,导出模块,操作记录模块,查询模块,公告模块;
一个一个讲:
- 登陆模块:实现学生登陆功能,拦截非法用户和手机网页(用过滤器和拦截器),提供找回密码功能。管理员也是如此,加个验证码功能;
- 个人信息模块:展示个人信息,提供修改手机号码模块,上报个人相关信息(因为是综测系统,所以上报一些相关信息);
- 学生管理模块:有时候数据导入会出现问题,所以提供一个修改功能给管理员,不用在数据库改;
- 加分模块:最主要的模块,最后还要算出总积分;
- 申诉模块:加分被拒绝的时候可以提出申诉;
- 批量加分模块:就是给一些社团,团委的权限去添加加分,同时还有闪课的数据;
- 审核模块:审核加分;
- 申诉模块:处理申诉;
- 留言模块:提供网站留言的平台(其实没啥用);
- 公示模块:公示整个班的积分;(后面再看要不要做,做下去功能太多太复杂了);
- 导出模块:导出pdf,导出excel;
- 操作记录模块:希望用日志来记录,用数据库太耗费资源了;
- 查询模块:可以查询多个模块的内容(用来学习);
- 公告模块:发布通知;
其实细分起来,很多都是不怎么困难的问题;因为项目大概就两千多人访问,没有需要什么分布式啊,消息队列啊(其实我也不会);最多就用到一个缓存;
<!--实体类设计(项目前身)-->
因为我是用JPA,所以不用建表sql,不推荐外键操作,外键写在应用层;
不打算记录各种时间,时间由日志记录;
user登陆用户类(id(stuid)-学号,name-名字,pwd-密码,state-状态,uptime-最后一次登陆时间,errornum-密码错误次数)
student学生信息类(id(stuid),name-名字,classgroup-班级,grouptype归谁审核,grade-年级,profession-专业,phone-手机号码,poordegree-贫困生等级,personalid-身份证,remark-备注)
fraction加分记录类(id,type-类别,degree-级别,stuid-学号,detail-内容TXT,fractionnum-分数,unit-加分单位,proof-是否有证明,remark-审核人备注,state-状态删除审核批准申诉)
appeal申诉记录类(id,stuid-学号,fractionid-加分记录id,state-状态,reason-申诉理由TXT,reply-回复理由)
Notice公告信息类(id,sender发表人,title标题,detail内容TXT,creattime-创建时间,state状态)
(考虑不做)comment留言类(id,stuname发表人名字,detail内容TXT,state状态)
<!--所谓RESTful风格-->
简单的说:RESTful是一种架构的规范与约束、原则,符合这种规范的架构就是RESTful架构。
先看REST是什么意思,英文Representational state transfer 表述性状态转移 其实就是对 资源 的表述性状态转移。
(什么是表述性:就是指客户端请求一个资源,服务器拿到的这个资源,就是表述)
资源的地址 在web中就是URL (统一资源标识符)
资源是REST系统的核心概念。 所有的设计都是以资源为中心
分四个controller
LoginController(登陆管理) /login/**
StudentController(学生跳转) /student/**
ManagerController(管理员跳转) /manager/**
ApiController(数据专用管理) /api/**
分为两个service
StudentService;
ManagerService;
<!--返回的结果-->
Result类,用抛异常处理,全局统一处理异常;
ResultUitl类
ResultEnum类
UserException类
返回结果:
Result(){
code:代码;
msg:消息;
data:Object;
}
<!--总结-->
行吧,就这样,我也不知道怎么样。当作一个学习的记录;希望以后能够记录下每周有什么进步之类;
原文地址:https://www.cnblogs.com/mystudyrecode/p/springboot-comeval.html