评论功能资料
在网页上评论功能并不少见,我也想在自己的网站中增加评论功能,好让知道别人对我的网站的看法,还能让别人提醒我哪里出错了。
于是我就去寻找对应的资料去了,之前对评论功能并没有了解过….
以下这个博主认为评论可以分为三种类型:
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的方式来进行调度…我觉得这种方式虽然代码是多一点,但是灵活很多!