
Werun后端23级纳新第二次作业
Werun后端23级纳新第二次作业
恭喜23级同学完成了第一次Java作业,从第二次作业开始,我们将进入Springboot部分的学习。建议大家去B站上搜索尚硅谷、黑马、狂神说等up主发布的经典SpringBoot入门教程进行学习。
对于从未接触过Springboot的22级同学,本次大作业也可以作为本次纳新22级Java大作业的基础参考,但22级同学无需完成本次作业,直接完成22级的大作业即可。
引入
在第一次作业中,我们学习了 Java 的基础语法以及一些高级特性。而在第二次开始,我们将使用 Java以及 SpringBoot 框架进行项目实战开发。
朝辞,是一个设想的相互留言写信的软件。我们可以创建自己的账号,拥有一个属于自己的uid;可以根据对方的uid写信给他,并可以添加关注列表;在收到对方的信件时,你也可以回信;除此以外,我们也可以寻找一位陌生人,即随机查库选择一个用户(类似漂流瓶),把信件发给他。除此之外,还有很多炫酷的功能,如延时发送惊喜信件、群发信件、信件分类管理等等。
我们将会分别在第二次和第三次作业中完成这个项目,本次作业会完成这个项目最基础的功能:用户的注册登录。
项目要求
本次作业需要完成该项目的基础部分,它需要包含以下功能:
注册登录
注册:使用用户名与密码注册(需要做一定的限制),注册成功后会获取属于自己的uid。
登录:使用用户名和密码登录,也可以使用uid和密码登录,若用户名密码正确则返回登陆成功信息,反之则返回失败信息。
注意:
本次作业的数据都要持久化保存,即保存在本地硬盘中的数据库。我们在关闭程序后重新启动后,我们仍然可以直接登录用户,并查看自己关注的用户。
以上功能要求都以接口实现,即传入指定的url和参数可以与项目交互并返回所需要的结果。至于接口的概念可以参照这个链接。
本次作业推荐使用以下技术栈作为加分项:
密码加密(如MD5)
过滤器/拦截器
使用JWT安全框架获取token
技术栈要求
后端框架:Springboot 框架。
数据库:MySQL (版本不做要求)
持久层框架:Mybatis / Springdata JPA 二选一。
如果选择Mybatis开发,本次作业旨在了解Mybatis的【xml】和【注解开发】两种开发方式,暂时不要用Mybatis-plus进行开发,我们将在第三阶段使用Mybatis-plus。
安全框架:JWT 与 token(可选,非常大的加分项)
需要使用的工具
集成开发环境:IDEA
用于Java开发,最好使用旗舰版。由于我们的学生邮箱被美国制裁后无法通过学生邮箱方式激活,大家可以在网上寻找其它激活的方法。(据说想要最方便快捷的激活方式可以尝试去淘宝花几块钱(小声))
数据库:MySQL
一种关系型数据库,用于数据持久化。
仓库管理工具:Maven
用于管理各种依赖。推荐使用旗舰版IDEA内置的Maven,但下载依赖时速度通常很慢,可以配置镜像源。
数据库可视化:Navicat
数据库可视化工具。可以以表格的形式展示数据库中存储的信息。你需要配置你的数据库信息。(到时候导出.sql文件就可以使用这个软件)。破解版可以参考群文件。
接口测试工具:Postman或 ApiPost7
用于测试你写好的接口,可作为最终展示效果
项目规范与其他要求
项目分包:可以根据网上学习的参考资料进行分包(本次作业需要用到 entity、mapper、service、controller等):
本次作业不要求以下内容:
无需将实体类设计为继承与多态;
无需将项目部署在公网上,运行在本地运行即可。
无需将项目保存在git仓库里(如果真的做到也可以做)
本次作业着重注意以下内容:
理解接口与请求等Web知识,配置好环境,能够将程序按照需求运行;
第一次Java作业中实现过的异常处理、代码规范。
Spring IOC 原理,能够说明 `@Autowired` 注解的相关原理。
本次作业以下内容为加分项,可以作为下一次作业的准备:
实现JWT安全框架,理解token,并实现用token进行登录/鉴权;
登陆注册使用密码加密(如MD5):
使用过滤器Filter/拦截器Interceptor;
提交方式
需要提交的内容:项目文件、数据库备份(.sql)、⼀个接口文档(写明白访问哪个地址会得到什么数据,最好还能有实际运行效果截图)
提交时间:2月10日之前,如出现特殊原因不能按时提交作业的同学,联系 @22-后端-张沣睿 说明原因即可;
将程序源文件以及附录打包发送到邮箱 werun_backend@163.com,邮件名为 学号-姓名-23级Java第二次作业
提示
环境配置是非常让人头疼的,很有可能会出现各种莫名其妙的红色报错、安装失败,甚至IDEA打不开等等乱七八糟的问题;大家在刚开始安装学习的过程中一定要报有耐心(毕竟大家都是从小白开始的,不是所有人都是一下子什么都能熟练操作),实在大不了卸载重装从头再来,也可以问后端Java的学长
学姐(@22-张沣睿 @21-王梓 @22-王豪 @22-刘硕)开发工具虽然看起来很多很杂,但不要害怕,这几个是我们最最常用的 Java Web 工具,找到对应的教程视频多实践,跟着做一遍就差不多了。
所有开发工具推荐使用英文版,并尽可能安装在非中文的安装目录下,据说IDEA的一些插件会与中文插件发生冲突,我们以后也是躲不掉各种英文版的软件的。
遇到任何下载速度慢的情况,首先考虑使用镜像,常用的有阿里云镜像和清华镜像
如果有其他问题,欢迎在群里提问或者问后端的学长学姐,也可以在交作业时随作业内容一并发来自己的感想。加油!
后记
引用抒情熊学长在本次大作业结束后的结语:
关于23级的大作业 朝辞,辞,是介于散文与诗歌之间的一种文体。而朝辞,是朋友给出的名字,想象着在晴朗的早晨,借着晨曦与新雨空气,伏案凭君传语,或者听到信客远方沓来的达达马蹄声。
这个idea,最初源于一个不切实际的创意,木心曾经说,“从前的日色变得慢,车,马, 邮件都慢,一生只够爱一个人。”,愈发急功近利的社会和交流下,人们越来越多的使用各种软件进行短时碎片化的交流沟通,而很难有像古代的书信一样,字斟句酌的写下每一句话,然后在未来漫长的日子里想念着不期而遇的回响。
于是有了这个可是因为种种原因没有完成实现,最后变成了这次的大作业。
希望大家能都能通过这次纳新有所收获,如果大家真的对这个软件有更大的兴趣,也可以尝试着把它部署到服务器上,一步步的优化它,最终变成一个真正的项目和产品。
也希望大家在以后的路上,能拥有更精湛的技术,更敏锐的领悟,更令人眼前一亮的创意和想法。创作出更多的优秀的作品。
杜甫曾说,“图南未可料,变化有鲲鹏”,严仁也说过“请君看取东流水, 方识人间别意长。”各位,有缘再见。—— by 抒情熊