vue+springboot前后端分离开发实战—个人博客
项目是采用前后端分离开发,刚开始先写页面再写接口,后来就是页面接口并行开发。做为一个侧重后端开发的技术人员,前端的开发还是具有相当大的难度和挑战的,大部分时间精力也都是花在了页面ui和功能代码的编写上,大改过几次了吧,不然也不会花这么长时间吧,可以说是走了相当多的弯路了,主要是对前端技术的掌握还不够深入,也都是看着文档一步步摸爬滚打四处碰避过来的。
当然也从中学习到了很多,相当于积累了一些经验吧,掌握了开发一个网站的大致流程,SpringBoot接口的开发,用nuxt.js结合element ui框架对网页的开发、linux下的运行环境的搭建和项目部署、域名的购买及实名认证、域名转至国内注册商,域名解析、阿里虚拟服务器的购买及备案、安全证书的申请及部署、对象存储和短信验证码的开通和使用等各种骚操作。
后端开发:
使用的是Java语言的Spring Boot框架,整合了swagger作为接口文档,添加跨域配置,连接MySQL关系型数据库,Mybatis操作数据库,MVC开发模式,即使没什么业务要处理也要按这个规范编写代码,像我刚开始一些简单的查询直接跳过了Service层,在Controller直接调用的Mapper,后面突然需要添加处理业务代码的时间就很麻烦,代码结构也很乱,偷懒一时爽。手机短信、图片上传、安全证书都是用阿里云的,使用到Redis存储短信验证码,因为前后端分离,前端使用了HTTPS,调用的接口也必须是HTTPS才行,又因为Spring Boot内置了Tomcat服务器,所有需要单独安装Tomcat版本的SSL证书,而远程虚拟服务器那里则使用到Nginx版的SSL证书,部署证书也是经历了诸多波折,说多都是泪。
前端开发:
网站是参照叶子个人博客开发的,整体布局一样,鉴于自己的技术水平,做不到完全一样,也添加了一些自己的想法,当然做为一个单身多年的后端开发直男,审美在短期内是提不上来了,期间也被很多小伙伴说UI难看,我自己也觉得很丑,也经过好多次修改,受限于整体布局、审美和技术水平,结果也不没让我满意,以后有时间再继续改吧。
刚开始使用的vue开发单页应用,结果发现首页打开特别慢,空白接近20秒,作为开发者我自己都不能忍何况用户呢,接着了解到这是vue单页应用普遍存在的现象,首页打开慢是一回事,另一方面也不利于SEO,即搜索引擎爬虫的抓取。好吧,既然发现了问题,那就想想怎么解决问题吧,预渲染?服务器渲染?最后使用nuxt.js这个我第一次接触并了解的框架,这是一个基于vue的服务器渲染框架,我就这样边看开发文档边改造自己的博客系统。后台管理系统就直接vue cli3构建的vue单页应用,体验稍差但对管理员来说也还可以。既要美观又不能落下性能,前端开发的小伙伴也不容易呀。
项目部署:
前后端项目都部署在阿里云虚拟服务器CentOS7.4上,分别安装了JDK、MySQL、Redis、Nginx、node,安装的时候记得对外开放端口或者直接关掉防火墙,还要登录阿里云在实例安全组那开放端口。Spring Boot项目打成jar包用命令行可直接运行,不需要再安装Tomcat,前端前台项目部署时需要命令行启动,我安装了pm2来守护线程。用Nginx作为HTTP、反向代理和静态服务器,Redis缓存短信验证码,node是nuxt.js项目需要的运行环境。总共部署了三个项目:前台、后台管理系统、接口。
其他:
开发工具:IntelliJ IDEA、HBuilderX、JetBrains WebStorm
测试工具:Postman
代码版本控件:GIT
项目代码
因为之前分享项目代码后遭到别人的恶意攻击,以及个人觉得代码写的比较烂,因此不再做公开分享,如果有小伙伴想要源码的可以私聊我。