关于交友网站的开发分享(漂流瓶功能)

前言

一件事情在开头总是想的很美好,然而事实总会跟你对着干。在网站搭建的过程中遇到了无数多的前端页面设计bug,我在此之前也可以算的上是个前端小小白,很是无奈,不过还是要在这里感谢其他工作室里帮我解决了许多bug的波波、田小宇和杨小卿,没有你们估计我的网站还得推迟半年才能上线吧,O(∩_∩)O哈哈~

不过现在网站还只是个雏形 ,还有继续开发中。。。。

文章概述
关于项目,对于学习Springboot是个挺不错的练手项目,可以让你在烦恼的业务逻辑中保持一颗纯洁的心
如何从零开始,使用Springboot开发项目
开发前的一些准备工作,以及思考项目整体结构与思路
记录开发过程中遇到的一些难题以及bug
总结目前工作室网站的一些优缺点
思考整个项目有哪些可以优化的地方,以及有哪些可增加的功能
项目需求
项目背景
对于Springboot的朋友来说,最好的一个学习方式就是那一个功能俱全的项目来练练手,通过自己重构项目来发现其中的潜在难题,并且也能很好的在编码过程中总结和发现问题、解决问题。使用Springboot开发的网站,简单并且实用,适合做练手项目。

功能需求
首页效果图
关于交友网站的开发分享(漂流瓶功能)
关于交友网站的开发分享(漂流瓶功能)
漂流瓶功能
关于交友网站的开发分享(漂流瓶功能)
关于交友网站的开发分享(漂流瓶功能)
后台效果
关于交友网站的开发分享(漂流瓶功能)
关于交友网站的开发分享(漂流瓶功能)

安装部署需求

使用springboot自带方式打包

非功能需求

性能需求
首页响应时间不超过2秒钟
前端页响应时间不超过3秒钟

项目设计
总体设计

本项目用到的技术和框架
1.项目构建:Maven
2.web框架:Springboot
3.数据库ORM:Mybatis
4.数据库连接池: HikariCP
5.分页插件:PageHelper
6.数据库:MySql
7.缓存:Redis

本项目中的关键点

1.采用Springboot开发,数据库使用连接池加orm框架的模式;
2.整体系统采用门户网站+后台管理方式搭建,门户网站信息内容以及消息交流和漂流瓶,后台管理用于价格定制、网站内容编辑,查看反馈,管理评论留言消息等。
3.使用阿里云OSS进行静态资源存储,以及CDN全站加速。

环境

工具 名称
开发工具 IDEA
语言 JDK1.8 、html、css、js
项目架构 SSM
ORM Mybatis
缓存 Redis
项目构建 Maven
运行环境 阿里云Centos7

对于熟悉Spring开发的朋友来说,相信对此结构也不会陌生。平时的开发过程中,结构设计是重要的环节,特别是协作开发的时候,明细的分包,模块化,可减少代码提交时的冲突。并且明确的结构有助于我们快速的寻找所对应的类。

打包、部署和运行
本项目采用Springboot的maven插件进行打包,打包结果:.jar
部署方式:使用 nohup java -jar ****.jar >.log 2>&1 &的方式,后台启动项目,并在该路径下生成运行日志。
大部分人喜欢打为war包,利用tomcat启动。两种方式都可以。

总结
开发中遇到的难点
要实现在一个页面进行权限验证,如果验证不成功会跳转到登录界面,并且登录成功后还要返回到之前界面,这里由于对SpringSecurity内部原理的不了解,所以我这里采用的方法是利用请求头和响应头存储url,并在登录成功后的页面出跳转到响应头中存储的url处

传头像处使用上传头像至阿里云的OSS对象存储中,由于上传问题并没有返回上传成功后的图片url地址,于是只好设置OSS的Bucket为公共读权限,然后当上传成功后手动拼接图片url并存入数据库
项目中最大的难点还是莫过于页面css的设计,但是使用了妹子UI后极大的解决了这个问题,只需修改少量css就能实现自己所需要的样式
项目整体优化
目前项目首页以及文章页响应时间过长,后期最好优化到1s响应时间
定时定期进行数据库的备份,防止出现网站被攻击后数据丢失的风险
手机端浏览文章页面会出现代码自动换行问题,不便于浏览过程
以上就是我在博客网站搭建过程后的所有总结记录,可能会有遗缺部分,等以后想起来了再来修改吧。
其他福利
微信扫下方二维码关注公众号,经常分享一些技术上的理解文章。欢迎骚扰,还可以回复想要的管理系统或者毕业设计,分享各种系统源码(仅限Java语言哦,如需定制系统加qq:226186862)
关于交友网站的开发分享(漂流瓶功能)