项目实训
- 前言
- 一、开题答辩(3月11 )
- 二、准备阶段
-
- 1.任务分配(3月12日)
- 2.购买服务器,搭建服务器(3月13日)
- 3.购买域名,申请备案(3月15日-3月20日)
- 4.域名备案成功,添加ssl证书(3月22日)
- 5.文档生成库JApiDocs的使用(3月30日)
- 三、正式开发阶段
-
- 1.图片的存储与访问(3月20日-25日)
- 2.一对一聊天(3月25日-31日)
- 3.聊天模块的实现(4月1日-5日)
- 3.登录注册和个人信息模块的实现(4月10日-13日)
- 三、中期答辩(4月22日)
- 四、项目收官(5月10日)
-
- 1.新增消息提示功能(5月10日-15日)
- 2.更改登录方式(5月15日-20日)
前言
大三下学期,学院开设了一门名为“项目实训”的课程。一共有三种参与方式,我和我的三个舍友组队成一队,选择了第二种参与方式,也就是独立完成一个完整的项目。项目要求创新,也就是说要么立意创新,要么算法创新。我们掂量掂量了自己,发现半桶水晃啊晃的,于是果断决定立意创新。绞尽脑汁冥思苦想了两天后,一个idea终于在我们用抢红包的方式决定谁去食堂打饭时冒了出来——校园互助平台!
以下是我们项目实训的完整过程(持续更新中…)
一、开题答辩(3月11 )
直到教务老师把“答辩日期定在后天中午”的消息发在群里,我们才不得不面对这残酷的现实。正所谓“巧妇难为无米之炊”,在答辩的前一晚,我们的项目进度仅仅停留在了刚确定好了队伍的名字的程度。
意外轻松的,我们通过了答辩,但是轻松的代价是保证每日有300日活量,顺便提一句,我们一个年级300多人。
在我们看来,这几乎是一个不可能完成的任务。按照规则,如果我们最后项目没有通过,就必须选择第三种方式——花费半个暑假的时间完成项目实训。“放弃吧,直接快进到暑假吧”。我们都萌生出了这个念头。
经过了很多努力,最终目标被修改为每日完成50笔订单。虽然仍然困难,但是我们终于有了坚持做下去的动力。
二、准备阶段
1.任务分配(3月12日)
今天我们综合考虑每个队员的意愿,大致分配了任务。我的任务是完成后端的登录注册、聊天、个人信息、信誉模块,并使用Springboot提供API接口。
2.购买服务器,搭建服务器(3月13日)
为了保证最终软件产品的推广效益,我们决定开发微信小程序。要想完成这个项目,最基本的一点,就是我们需要有一个真正的服务器。
然而我们所有人都没有搭建服务器的经验。在过去我们做课设都是以自己本机作为服务器“自娱自乐”,显然,现在不行。在立项时我负责的是部分后端工作,这份任务便落在了我的身上。
对于一个像我这样的菜鸟新手来说,这个过程可以说是一步一个坑。
其中卡了我最久也最让我无语的一个坑是:当你需要打开服务器的一个端口时,不仅需要在命令窗口中打开,还需要去阿里云的控制平台手动打开防火墙!!!
3.将证书文件扔到项目根目录中
经过上述步骤后,服务器便可以接受HTTPS的请求了。
5.文档生成库JApiDocs的使用(3月30日)
我们的项目是前后端分离进行的,这就需要生成一份清晰明了的接口API文档。
现在用于Springboot生成文档的主流库是swagger,我粗粗看了一下,发现有点复杂,感觉有点头秃。这个时候我惊喜的发现了一个针对与Springboot的轻量级的库,能够十分简单方便地自动生成接口API文档,唯一要求就是规范地编写注释
需要引入的依赖如下:
然后按照规范书写注释:
生成文档的代码,随便放入一个main方法中执行,Test方法中也可以:
这样生成的就是HTML格式的文档:
你还可以自行将Markdown转换成PDF或者其他你想要的格式。
到此准备阶段正式完成。
三、正式开发阶段
1.图片的存储与访问(3月20日-25日)
头像、聊天、任务等都涉及到图片的存储和访问问题。
为了提高数据库查询的效率,我打算将图片存储到服务器硬盘上,然后数据库表中存储图片的URL。
前端传送过来的图片数据是Base64码,直接存储会出问题,需要对Base64码进行一些处理:
将处理后的Base64码转存为图片需要对其进行解密操作。我使用的是sun.misc.BASE64Decoder库的方法。
经过处理、解密、存储操作后,前端传来的Base64码就顺利变成了图片存在了硬盘上。接下来需要处理的就是图片路径问题。
由于项目使用的是SpringBoot框架,集成了Tomcat,所以项目发布过程变得十分简单,只需要将项目打成jar后运行即可。但是打成jar包后的项目如何存储和访问静态图片资源呢/p>
经过实际测试后我发现,无论是在Windows还是Linux系统中,如果图片保存的路径为项目所在文件夹,那么实际保存路径反而去到了项目jar包所在文件夹的上一级文件夹中;如果要将图片保存在与包同一级的文件夹中,那么图片的保存路径需要填写项目根路径!!
关于如何获取项目根路径, 上的答案五花八门,我试了很多都失败了。最后我找到了一种方法,无论是在Windows还是在Linux中,无论项目是否打成了Jar包,都能正确地获取根目录的绝对路径:
关于获取的绝对路径,如果是在Windows操作系统下,那么会是类似“C:Program FilesJava”这样的,我们将它转换为我们想要的 络URL路径,还需要进一步处理:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!