博客开发中遇到的问题和个人心得

1.说在前面:

  1. 这个网站是学着onestar大神开发做的,使用的是他的前端页面制作的,但他给的只是静态的页面,没有添加协议请求和页面获取数据后的展示代码,所以自学了不少前端代码,幸好之前有一定thymeleaf的基础,边看边学把前端代码完善齐了。最让我头疼的就是评论展示,一会底部footer不显示,一会JS代码不运行,一会评论按钮不起作用,一会数据发到后端不齐全,原本其他功能都开发完了,硬是在这里耗费了快一天时间解决。 不过总的来说让自己学习到了很多前端知识,虽说前后端开发只需沟通好协议名数据类型就可以,但至少多懂一点也算是好事吧哈哈!

  2. 这个项目总的来说难度不大,没有使用分布式架构将控制层和服务层分开、将各个服务完成分开部署。只是简单的使用一个springboot将整个项目构建。使用到的技术方面也很局限,log4j的日志系统、拦截器进行请求拦截、使用thymeleaf和html整合,markdown和Html的转换,md5对密码的加密等。

风景图


2.总结一下开发中遇到的问题

1.前端

  • 使用th:href 标签的时候他会默认拼接自己当前页面的根路径,需要添加"http:/" 来屏蔽根路径直接重定向新的网页
  • 使用th:text 是将页面直接显示包括html标签,全当作字符串,如果想要吧字符串当作html解析展示就需要使用th:utext
  • th:unless 获得值true/false可以用来确保某些特定情况才显示,比如对话框,博主标签等
  • th:attr 用于给属性值动态赋值,可以一次过赋值多个,但前面需要加data-xxx然后在js中直接用$(obj).data('xxx');不太清楚原因,但一开始用data-xxx取值是拿到为空,需要上述写法才可以拿到值给var变量。
  • th:value 用于给属性赋值但一次只能一个,暂时不太清楚和th:attr用法区别
  • 数据库查询的时间返回到前端显示格式是异常的,需要转化为想要的格式${#dates.format(blog.updateTime,'yyyy-MM-dd HH:mm')}"

2.后端

  • 后端中采用了很多restful的写法,个人感觉这种方法很简洁大气,但是在程序开发过程中就不太好理解了。比如获取博客列表的mapping是"/blogs",而添加博客发送的请求也是"/blogs",他只是根据请求方法类型和参数来绝对是查询还是新增,这样开发起来就需要瞻前顾后,注意方法区分和参数传递。个人更觉得换个名字舍弃一点点简洁也不失为过。
  • 权限管理,正在考虑怎么改进,想过单点登录,但又觉得没必要那么复杂。毕竟就我一个管理员~
  • 拦截器inteceptor在springboot 2.x以后废弃了这个类WebMvcConfigurerAdapter取而代之的是WebMvcConfigurationSupport但用这个类后会报o.s.web.servlet.PageNotFound无法找到css等资源!!!解决要实现WebMvcConfigurer接口。
  • 评论列表的遍历算法,查询所有评论列表然后需要将它子列表查询出来,子列表查询所有回复的评论。然后将子列表封装到评论类里面的一个list中然后交由前端展示。

3.难点

  • 遇到第一个难点是不熟悉前端,耗费了我最多的时间。
  • 评论、留言列表的遍历算法,这个算是最难的地方,需要递归去获取,每个留言有个id,如果是最高层的留言id就为-1以此类推,把它的子留言查找出来封装返回展示。
  • 图片储存,因为服务器的空间有限也没有能力租用空间大的服务器,所以这里上传到csdn的图片服务器,拿到图片地址。

风景3


最后:

  • 非常感谢oneStar大神的帮助,得以成功开发这个博客并且部署上线✿✿ヽ(°▽°)ノ✿。然后源码已经发到github上啦,欢迎大家去查看和下载,前端会把最新版发上去的,前后端会分开发上去,同时会整理出来一个博客的教程,每个功能开发代码的作用。将不同模块功能讲解一次。
  • 博客开发的首页展示图片格式要求比较苛刻,可能和前端代码有关,如果图片格式不一致就会出现不对齐或错位情况,所以如果介意就最好使用统一格式的图片,最后分享一下我找背景图的网址:http://desk.zol.com.cn/

Thanks for watching!~

end
  • 作者:Endwas(联系作者)
  • 发表时间:2021-01-15 12:15
  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
  • 转载声明:如果是转博主转载的文章,请附上原文链接
  • 公众号转载:请在文末添加作者名字和博客地址
  • 评论