从零开始写项目第五篇【评论功能、备忘录】

简介: 在网页上评论功能并不少见,我也想在自己的网站中增加评论功能,好让知道别人对我的网站的看法,还能让别人提醒我哪里出错了。

评论功能资料


在网页上评论功能并不少见,我也想在自己的网站中增加评论功能,好让知道别人对我的网站的看法,还能让别人提醒我哪里出错了。

于是我就去寻找对应的资料去了,之前对评论功能并没有了解过….

以下这个博主认为评论可以分为三种类型:

http://blog.csdn.net/u010098331/article/details/51447144?locationNum=5&fps=1

  • 将回复和评论都统一当成是评论,能够使用@XXX来当做是回复,类似与IOS知乎的评论【此做法是最简单的】
  • 将回复和评论分开,要么单表就多增加一个父属性,要么就分两张表【稍微复杂,一个评论可以对应多个回复】
  • 实现评论与回复“盖楼”的方式,这种就是网易的评论【具体可看下面的博文,此种是最复杂的】

这位博主给出了相关的设计数据库过程,我觉得非常好,受益良多

而这位博主就是针对上面所说的第一种情况做的评论功能:

http://blog.csdn.net/yums467/article/details/50749968

  • 有对应的前端样式,数据库设计,PHP后台的实现

下面这位博主就给出了在设计评论功能时的总结以及github代码:

http://blog.csdn.net/muzili12a3/article/details/54695426


着手开发


有了上面的基本知识,就可以着手开发属于自己的评论功能了。我就选择最简单的那种就好咯,单表设计。

集合上面的知识,我设计了一张数据库表

94.jpg

可以说是设计得非常简单,因为我的目的就是为了能够让别人在我的网站下留言而已。如果需要的话,以后再弄“盖楼”或者真正可以回复那种方式吧。。

有了数据库表的设计,其实Controller、Dao层那里的代码就没什么难度了,重点就是在页面设计上…….(对我来说还是有点难)…


个人备忘录编写


之前就想做个人备忘录这个功能的了,本来是想用“手机短信”的方式来提示用户设置了备忘录的。后来去找手机短信SDK的时候又觉得要钱,还得与当前账户联系起来,就觉得没啥必要。就直接使用邮箱了(因为我的账户体系本来就是用邮箱的)

既然是用户设置时间、发邮件提示,那么我第一时间想到的是Quartz任务定时调度框架…

后来,觉得当前的Quartz的知识不足够我去写这么一个功能,于是就去找资料重新学了一下Quartz:https://zhongfucheng.bitcron.com/post/javaee/javading-shi-ren-wu-diao-du-gong-ju

当然了,在开发的过程中也遇到了不少的bug:

  • 在Junit测试Quartz没有反应
  • Spring不能注入对象进Quartz的Job类中

这些bug也不是一下子就能定位出来的,花了我不少时间,上面所说问题的解决方案:

https://zhongfucheng.bitcron.com/post/javaee/quartzye-wu-lei-wu-fa-zhu-ru-springdui-xiang-wen-ti

https://zhongfucheng.bitcron.com/post/javaee/junitce-shi-quartzwu-fan-ying-jie-jue-cuo-wu

在时间选择器上,本来想是使用wdatepicker这个组件的,后来发现与网站的样式不太匹配,最后选择了bootstrap的datepicker。

datePicker教程:http://www.bootcss.com/p/bootstrap-datetimepicker/

Quartz入门教程:http://www.cnblogs.com/xrab/p/5850186.html

Quartz进阶:https://www.dexcoder.com/selfly/article/308?curPage=7#commenthttp://blog.csdn.net/jianging2009/article/details/54020399

Date对象转成Cron表达式:http://blog.csdn.net/u010046887/article/details/50818124

上面Quartz的进阶是我当时想动态修改Quartz触发器的时间的..不过没有用到那个技术..

后来还看了一下Spring自带的任务调度,觉得如果以后逻辑方便的话,这个使用起来也是很简单的:http://blog.csdn.net/u010648555/article/details/52162840

Quartz一般都是按某个时间来进行调度,使用Spring整合起来是很方便的。可是我的业务是:用户设置在某个时间点来进行调度,调度以后即不再调用了

最后我选择自己编写Job、自己编写Trigger的方式来进行调度…我觉得这种方式虽然代码是多一点,但是灵活很多

目录
打赏
0
0
0
0
1281
分享
相关文章
从头到尾手把手教你搭建阅读Mybatis源码的环境(程序员必备技能)
从头到尾手把手教你搭建阅读Mybatis源码的环境(程序员必备技能)
262 0
(一)、项目介绍及知识点概述【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】
(一)、项目介绍及知识点概述【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】
148 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
141 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
勇敢迈出第一步:手把手教你如何在WPF开源项目中贡献你的第一行代码,从选择项目到提交PR的全过程解析与实战技巧分享
【8月更文挑战第31天】本文指导您如何在Windows Presentation Foundation(WPF)相关的开源项目中贡献代码。无论您是初学者还是有经验的开发者,参与这类项目都能加深对WPF框架的理解并拓展职业履历。文章推荐了一些适合入门的项目如MvvmLight和MahApps.Metro,并详细介绍了从选择项目、设置开发环境到提交代码的全过程。通过具体示例,如添加按钮点击事件处理程序,帮助您迈出第一步。此外,还强调了提交Pull Request时保持专业沟通的重要性。参与开源不仅能提升技能,还能促进社区交流。
79 0
基于SpringBoot+Vue的高校本科生学习成长记录系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的高校本科生学习成长记录系统的详细设计和实现(源码+lw+部署文档+讲解等)
87 1
基于SpringBoot+Vue+uniapp的经典诗文学习爱好者学习交流平台的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的经典诗文学习爱好者学习交流平台的详细设计和实现(源码+lw+部署文档+讲解等)
|
11月前
|
uniapp项目实践第一章:如何创建uniapp项目
uniapp项目实践第一章:如何创建uniapp项目
128 1
uniapp项目实践第三章:初始化项目
uniapp项目实践第三章:初始化项目
141 0
IT市场寒冬过了!GitHub置顶的Spring微服务架构实战派手册有用了
“今年找工作好难啊” 感觉大家总是陷入市场寒冬这个氛围里面“无法自拔”,虽然今年经济下行,工作的确难找,但是在职友集上可查询到的Java岗位仍有20w+,需求相比其他而言并不算少,更别提还有技术细分下的岗位可选!
【C++】C++ 基础进阶【二】开发技巧
C++基础进阶,关于开发环境开发工具的一些便捷使用方式,提高生产力
219 0
【C++】C++ 基础进阶【二】开发技巧