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

评论功能资料

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

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

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

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

着手开发

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

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

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

有了数据库表的设计,其实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#comment和http://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的方式来进行调度…我觉得这种方式虽然代码是多一点,但是灵活很多

原文发布于微信公众号 - Java3y(gh_085b56c42174)

原文发表时间:2018-03-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏美团技术团队

美团点评前端无痕埋点实践

构建一个数据平台,大体上包括数据采集、数据上报、数据存储、数据计算以及数据可视化展示等几个重要的环节。其中,数据采集与上报是整个流程中重要的一环,只有确保前端数...

1.1K60
来自专栏带你撸出一手好代码

发现了一个vscode的bug

被一个BUG折磨了3个小时。我知道引起这个BUG的原因,是因为项目中某些配置文件中配置的程序包引用路径出错了,要解决这个问题很简单,只需要将这些配置文件中错误的...

7110
来自专栏cmazxiaoma的架构师之路

电商毕业设计小节

23350
来自专栏Petrichor的专栏

csdn: 添加站内搜索框

CSDN博客 对我来说是一个很重要的 Online Notebook,我日常会把每天新学到的东西都记录下来以方便将来查阅。

25220
来自专栏MoeLove

高效 Bash 使用技巧

我们在日常使用中,难免会使用到一些历史命令或者有时需要对历史命令进行更正,那么如何更加高效的来完成这些操作呢?

9620
来自专栏Java架构师学习

一文归纳总结分布式架构的那些事!

进入十一月,最火热的话题与期待的日子自然是双十一狂欢购物节了,作为程序员的你除了要清空自己的购物车之外,最关心的是不是双十一架构技术是如何承受亿级用户流量的冲击...

12040
来自专栏Java学习网

网页打开时都发生了什么?我被吓着了

  在浏览器里输入网址或者点击链接,网页打开了……这是我们上网时再普通不过的一幕,但是如此简单的表象背后,却隐藏着无比复杂的技术流程。想涨涨知识吗?往下看吧。 ...

37760
来自专栏java架构师

学习 WCF (1)--基础篇

  Windows Communication Foundation (WCF)是一个面向服务编程的综合分层架构。该架构的顶层称为服务模型层(Service M...

27990
来自专栏张高兴的博客

网络唤醒(WOL)全解指南:原理篇

网络唤醒(Wake-on-LAN,WOL)是一种计算机局域网唤醒技术,使局域网内处于关机或休眠状态的计算机,将状态转换成引导(Boot Loader)或运行状态...

33610
来自专栏北京马哥教育

干货:Web应用上线之前程序员应该了解的技术细节

问题 Web 应用上线前,程序员应考虑哪些技术细节呢? 如果 Jeff Atwood 忘记把 HttpOnly cookies、sitemaps 和 cros...

35850

扫码关注云+社区

领取腾讯云代金券